小技(無名関数をネストした際の挙動)

最近F#のお勉強をしているのだが、そこで(fun x -> fun y -> x + y)みたいに書くと二変数関数のような挙動になるのが自分の直感とちょっとあってないなとつぶやいたら「Rでもできるぜ、そういうの」と言われたのでメモがてら書いておく。

> ff <- function(x){function(y){x+y}}
> ff(2)
function(y){x+y}
<environment: 0x01e47484>
> ff(2)(3)
[1] 5
> ff(2,3)
以下にエラー ff(2, 3) :  使われていない引数 (

教えてくれたid:koh_ta氏に感謝。