Currying: Difference between revisions

→‎{{header|REXX}}: added the REXX language. -- ~~~~
(→‎{{header|Ruby}}: Added explanation about optional argument)
(→‎{{header|REXX}}: added the REXX language. -- ~~~~)
Line 351:
((curried+ 3) 2) ; => 5
</lang>
 
=={{header|REXX}}==
This example is modeled after the &nbsp; '''D''' &nbsp; example.
===specific version===
<lang ress>/*REXX program demonstrates a REXX currying method to perform addition. */
say 'add 2 to 3: ' add(2 ,3)
say 'add 2 to 3 (curried):' add2(3)
exit /*stick a fork in it, we're done.*/
/*──────────────────────────────────subroutines─────────────────────────*/
add: procedure; $=arg(1); do j=2 to arg(); $=$+arg(j); end; return $
add2: procedure; return add(arg(1), 2)</lang>
'''output'''
<pre>
add 2 to 3: 5
add 2 to 3 (curried): 5
</pre>
 
===generic version===
<lang rexx>/*REXX program demonstrates a REXX currying method to perform addition. */
say 'add 2 to 3: ' add(2 ,3)
say 'add 2 to 3 (curried):' add2(3)
exit /*stick a fork in it, we're done.*/
/*──────────────────────────────────ADD subroutine──────────────────────*/
add: procedure; $=0; do j=1 for arg()
do k=1 for words(arg(j)); $=$+word(arg(j),k)
end /*k*/
end /*j*/
return $
/*──────────────────────────────────ADD2 subroutine─────────────────────*/
add2: procedure; return add(arg(1), 2)</lang>
'''output''' is the same as the 1<sup>st</sup> version.
<br><br>
 
=={{header|Ruby}}==