Thursday, September 28, 2006
This image shows the definition of the standard function 'map' expressed in the graphical language of the Gem Cutter.
Of particular note is the white Gem on the Table Top with the name "demoMap". This is an Emitter of the target Gem (i.e. the result) and represents a recursive call. By default, an Emitter has no local arguments and so it's output type is the same as the value passed into its corresponding Collector. However, one is able to 'retarget' arguments from definition upstream of a Collector to the Collector itself, whereby any Emitters for that Collector will appear with 'local' arguments. If that sounds complicated, it really takes longer to say it than it does to grok when you are in front of the Gem Cutter :-)