Partial function application: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (→{{header|Raku}}: Fix-up some Perl6 -> Raku references) |
(Added Wren) |
||
Line 2,217: | Line 2,217: | ||
fsf2, 0-3: 0, 1, 4, 9 |
fsf2, 0-3: 0, 1, 4, 9 |
||
fsf2, evens: 4, 16, 36, 64</pre> |
fsf2, evens: 4, 16, 36, 64</pre> |
||
=={{header|Wren}}== |
|||
<lang ecmascript>var fs = Fn.new { |f, s| s.map { |e| f.call(e) }.toList } |
|||
var f1 = Fn.new { |n| 2 * n } |
|||
var f2 = Fn.new { |n| n * n } |
|||
var partial = Fn.new { |f, g| Fn.new { |x| f.call(g, x) } } |
|||
var ss = [[0, 1, 2, 3], [2, 4, 6, 8]] |
|||
for (s in ss) { |
|||
var fsf1 = partial.call(fs, f1) |
|||
var fsf2 = partial.call(fs, f2) |
|||
System.print(fsf1.call(s)) |
|||
System.print(fsf2.call(s)) |
|||
System.print() |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
[0, 2, 4, 6] |
|||
[0, 1, 4, 9] |
|||
[4, 8, 12, 16] |
|||
[4, 16, 36, 64] |
|||
</pre> |
|||
=={{header|zkl}}== |
=={{header|zkl}}== |