def f i = 0 Proc.new { puts i; i += 1 } end _f = f _f.call # => 0 _f.call # => 1 _f.call # => 2 _f.call # => 3 それぞれの違いを見ていきましょう。 まずJavaScriptが変数 f に生成したクロージャを代入しているのに対し、Rubyでは一旦クロージャ生成メソッドを定義してから変数 _f にクロージャを代入しています。 もちろんJavaScriptでもRubyのような書き方はできますが上記がそれぞれの言語の一般的な書き方かと思います。 また上記の例では、JavaScriptでは関数の実行方法は1つ(末尾に"()"をつける)しかありませんが、Rubyでは何もせず単に f と書くだけで実行している場合と、.call を呼び出して実行している場合の2種類が存在します。 これはJavaS

