Lambda和proc生成

时间:2016-10-03 02:54:04

标签: ruby lambda

我在https://ruby-doc.org/core-2.3.1/Proc.html

读到了红宝石中的Proc
lambda(&lambda {}).lambda?   #=> true
proc(&lambda {}).lambda?     #=> true
Proc.new(&lambda {}).lambda? #=> true

lambda(&proc {}).lambda?     #=> false
proc(&proc {}).lambda?       #=> false
Proc.new(&proc {}).lambda?   #=> false

我几乎不明白为什么所有结果都是他们。如果你有任何想法。请帮帮我!

1 个答案:

答案 0 :(得分:1)

它在您引用的代码上方如此说明:

  

lambdaproc::new保留Proc参数给出的&对象的技巧。

在前三个示例中,您使用Proc创建lambda {};因此它是一个lambda。包装它不会改变它; .lambda?true

在后三个示例中,您使用Proc创建proc {};因此它不是一个lambda。包装它不会改变它; .lambda?false