https://nerimarb.esa.io/posts/35
戻り値が関数の関数について学習しました。
ふとした流れで"Rubyで書き換えてみよう"ということになったのでやってみたら、同じようにできなくてすごく悔しい結果に・・・。元とRubyで書いたのは以下のような感じです。
(* OCaml *) let twice f = let g x = f (f x) in g ;; let twice f = let g x = f in g ;; twice add3 7 ;;
# ruby def twice(f, arg) f.call(f.call(arg)) end def add3 -> (arg) { arg + 3 } end
Rubyでは引数で渡したメソッドのメソッドと引数をそれぞれ変数に入れるというのができない、というか、OCamlではそれができることが発見でした。何気ないことだけどもしこれがRubyでもできたら便利そうです!