Partial function application: Difference between revisions
Content added Content deleted
m (→{{header|TXR}}) |
(Added groovy version) |
||
Line 524: | Line 524: | ||
fsf2 [2; 4; 6; 8] |
fsf2 [2; 4; 6; 8] |
||
</lang> |
</lang> |
||
=={{header|Groovy}}== |
|||
<lang groovy>def fs = { fn, values -> values.collect { fn(it) } } |
|||
def f1 = { v -> v * 2 } |
|||
def f2 = { v -> v ^ 2 } |
|||
def fsf1 = fs.curry(f1) |
|||
def fsf2 = fs.curry(f2)</lang> |
|||
Testing: |
|||
<lang groovy>[(0..3), (2..8).step(2)].each { seq -> |
|||
println "fsf1$seq = ${fsf1(seq)}" |
|||
println "fsf2$seq = ${fsf2(seq)}" |
|||
}</lang> |
|||
Output: |
|||
<pre>fsf1[0, 1, 2, 3] = [0, 2, 4, 6] |
|||
fsf2[0, 1, 2, 3] = [2, 3, 0, 1] |
|||
fsf1[2, 4, 6, 8] = [4, 8, 12, 16] |
|||
fsf2[2, 4, 6, 8] = [0, 6, 4, 10]</pre> |
|||
=={{header|Haskell}}== |
=={{header|Haskell}}== |