Hi all, We have a number of data structures and functions available via Stellar for manipulating those structures. For example, we provide the following functions for initializing and working with Bloom filters: [Stellar]>>> ?BLOOM_ ?BLOOM_ADD ?BLOOM_EXISTS ?BLOOM_INIT ?BLOOM_MERGE
For Maps, we have some functions for dealing with existing maps, e.g MAP_GET, MAP_EXISTS. We even have a MapReduce type of function, MAP. And from an initialization perspective, you can create a map in Stellar with what amounts to as an empty JSON object, e.g. mymap:={}. You can also turn JSON into a proper map using TO_JSON_MAP. I don't, however, see a way to add to map object contents, e.g. PUT. So the first question I have is whether this would functionality (assuming I haven't missed something obvious that enables this in the first place) be valuable to anyone, or if it's even something we should enable to begin with. A vote against this option could be the potential for users unwittingly loading up a ton of data and encountering OOM errors. This would be bad for running topologies. The second question is whether this should be a language feature or a specialized set of functions, e.g. MAP_INIT,MAP_PUT, MAP_REMOVE vs mymap:={} mymap['mike']:='miklavcic' mymap:=FILTER(mymap , (x) -> x != 'mike') *Note*, from the above, the only thing we appear to be missing is the ability to add to an existing map. Initializing and removing elements can be handled by existing functionality. Best, Mike