5
Ruby에서 procs와 lambda가 무엇인지 "간단한"설명이 있습니까?Ruby에서 procs와 lambda가 무엇인지 "간단한"설명이 있습니까?
Ruby에서 procs와 lambda가 무엇인지 "간단한"설명이 있습니까?Ruby에서 procs와 lambda가 무엇인지 "간단한"설명이 있습니까?
Lambdas (다른 언어에도 존재 함)는 일부 복잡한 작업을 수행하는 것이 아니라 단순한 용도로만 작성되는 특수 기능과 같습니다.
Array#collect
과 같은 방법으로 {}
블록을 사용하는 경우 해당 메소드 만 사용하는 람다/proc/블록을 만드는 것입니다.
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
은 위키 백과에 Anonymous functions를 참조하고, lambda
대 Proc
의 뉘앙스에 대한 몇 가지 other SO questions.
위의 예에서는 람다 없이도 계속 수행 할 수 있습니다. 블록이 본문 인 다음 루프에 대한 수집과 동일하지 않습니까? 나는 그 블록을 사용하는 것의 이점을 보려고 애 쓰고있다. – Zubair
물론 for 루프로도 할 수 있지만, 좀 더 우아하고 Ruby-ish 방법입니다. 다른 방법은 루프로 복제하기가 더 어려울 수 있습니다. – jtbandes
좋아, 아마도 내가 람다와 프록스에게 할 수있는 일이 너무 길다는 것을 아는 것이 유용 할 것 같다. – Zubair