5

Rubyのprocとlambdaの「簡単な」説明はありますか?

4

1 に答える 1

5

ラムダ(他の言語にも存在します)はアドホック関数のようなもので、複雑なアクションを実行するのではなく、単純な使用のためにのみ作成されます。

Array#collectでブロックを取得するようなメソッドを使用すると{}、基本的に、そのメソッドを使用するためだけにlambda / proc/blockを作成することになります。

a = [1, 2, 3, 4]
# Using a proc that returns its argument squared
# Array#collect runs the block for each item in the array.
a.collect {|n| n**2 } # => [1, 4, 9, 16]
sq = lambda {|n| n**2 } # Storing the lambda to use it later...
sq.call 4 # => 16

ウィキペディアの無名関数、およびvs.のニュアンスに関するその他のSOの質問を参照してください。lambdaProc

于 2009-11-16T08:58:17.127 に答える