#ruby #lambda
#ruby #лямбда
Вопрос:
Я читал о Proc в ruby на https://ruby-doc.org/core-2.3.1/Proc.html
lambda(amp;lambda {}).lambda? #=> true
proc(amp;lambda {}).lambda? #=> true
Proc.new(amp;lambda {}).lambda? #=> true
lambda(amp;proc {}).lambda? #=> false
proc(amp;proc {}).lambda? #=> false
Proc.new(amp;proc {}).lambda? #=> false
И я почти не понимаю, почему все результаты — это они. Если у вас есть какие-либо идеи. Пожалуйста, помогите мне!
Ответ №1:
Это сказано прямо над кодом, который вы процитировали:
lambda
,proc
и::new
сохраняет трюкиProc
объекта, заданногоamp;
аргументом.
В первых трех примерах вы создаете Proc
using lambda {}
; таким образом, это лямбда. Перенос его не меняет; .lambda?
есть true
.
Во вторых трех примерах вы создаете Proc
using proc {}
; таким образом, это не лямбда. Перенос его не меняет; .lambda?
есть false
.
Комментарии:
1. Итак, почему перенос lambda / proc не меняет его?
2. Вам нужно будет спросить людей, которые его разработали.
3. Хорошо! Спасибо за вашу помощь