関数を返す関数
今日はSICPの読書会が急遽中止になってしまった。
(メールに気づかないで途中までいいたw)
せっかく早く帰ってきたので、先週自社でやってる方でやったやつのメモ。
((hoge 1) 2)
のように"(("ってなっているので見たときは???だったけど
よく考えてみれば関数(手続き?)が関数を返してるんだね。
(define (hoge a) (lambda (x) (+ x a)))
中身はこんな感じでlambda使ってるやつ。
returnとかないし()ばっかだからわかりにくいので
JavaScriptで同じことをすると
var hoge = function (a){ return function (x){ return x + a; }; }; hoge(1)(2);
って感じ。これだと結構理解しやすいんじゃないかな。
使うシーンはほぼなさそうだけど、呼び出しの()を2つ並べると
戻り値になってる関数も実行されるんだねー。
JavaScriptってやっぱすげー。