Van: Rob Stapper [mailto:r.stapper@lijbrandt.nl] Verzonden: donderdag 16 juli 2015 8:48 Aan: 'Graydon Saunders' Onderwerp: RE: [basex-talk] Union of maps? Hoi Graydon, Here’s one of my map-extensions. This one I use for merging maps. It’s also an example of how to create your own high-order-functions. Hopes is it helps. Cheers, Rob Stapper declare function ext.map:merge ( $sourceMap as map(*) , $targetMap as map(*) , $updateFunction as function(*) ) as map(*) { fold-left( map:keys( $sourceMap) , $targetMap , function( $targetMap , $key ) { map:put( $targetMap , $key , $updateFunction( map:get( $sourceMap, $key) , map:get( $targetMap, $key) ) ) } ) } ; Van: basex-talk-bounces@mailman.uni-konstanz.de [mailto:basex-talk-bounces@mailman.uni-konstanz.de] Namens Graydon Saunders Verzonden: woensdag 15 juli 2015 20:01 Aan: BaseX Onderwerp: [basex-talk] Union of maps? Hi -- In BaseX 8.2.1, I have a bunch of maps; the maps may have some overlap of key values. I would like to merge/find the union of all of these maps while retaining all the values associated with each key in the resulting map-of-all-maps. (Combined map? Any word can be wrong, here! :) map:merge() doesn't do this; http://docs.basex.org/wiki/Map_Module#map:merge says "The associated value for each such key is taken from the last map in the input sequence $input that contains an entry with this key." and testing confirms this. Is there a straightforward way to do this that I'm missing? Thanks! Graydon --- Dit e-mailbericht is gecontroleerd op virussen met Avast antivirussoftware. https://www.avast.com/antivirus