-- main.mcl -- import "golang" import "iter" func itermap($a, $b) { iter.map($a, $b) } func id($x) { $x + $x } $fn_str = func($x) { id($x) } $fn_int = func($x) { id($x) } $in1 = [5, 4, 3, 2, 1,] $in2 = ["a", "b", "c", "d", "e",] $in3 = [1, 2, 3, 4, 5,] $in4 = ["e", "d", "c", "b", "a",] $out1 = iter.map($in1, $fn_int) $out2 = iter.map($in2, $fn_str) $out3 = itermap($in1, $fn_int) $out4 = itermap($in2, $fn_str) $out5 = iter.map($in3, func($x) { $x + $x }) $out6 = iter.map($in4, func($x) { $x + $x }) $out7 = itermap($in3, func($x) { $x + $x }) $out8 = itermap($in4, func($x) { $x + $x }) $t1 = golang.template("out1: {{ . }}", $out1) $t2 = golang.template("out2: {{ . }}", $out2) $t3 = golang.template("out3: {{ . }}", $out3) $t4 = golang.template("out4: {{ . }}", $out4) $t5 = golang.template("out5: {{ . }}", $out5) $t6 = golang.template("out6: {{ . }}", $out6) $t7 = golang.template("out7: {{ . }}", $out7) $t8 = golang.template("out8: {{ . }}", $out8) test "${t1}" {} test "${t2}" {} test "${t3}" {} test "${t4}" {} test "${t5}" {} test "${t6}" {} test "${t7}" {} test "${t8}" {} -- OUTPUT -- Vertex: test[out1: [10 8 6 4 2]] Vertex: test[out2: [aa bb cc dd ee]] Vertex: test[out3: [10 8 6 4 2]] Vertex: test[out4: [aa bb cc dd ee]] Vertex: test[out5: [2 4 6 8 10]] Vertex: test[out6: [ee dd cc bb aa]] Vertex: test[out7: [2 4 6 8 10]] Vertex: test[out8: [ee dd cc bb aa]]