문제

누군가 람다가 무엇인지에 대한 좋은 설명을 제공 할 수 있습니까? 우리는 그들에 대한 태그를 가지고 있고 그들은 c# 질문의 비밀에 있지만, 나는 그들이 처음에 무엇인지에 대한 좋은 정의와 설명을 아직 찾지 못했습니다.

도움이 되었습니까?

해결책

클로저, 람다 및 익명 기능이 반드시 같은 것은 아닙니다.

익명 기능은 자체 이름이 없거나 최소한 필요하지 않은 기능입니다.

폐쇄는 넘어진 후에도 선언 될 때 어휘 범위에있는 변수에 액세스 할 수있는 기능입니다. 밖으로 범위. 익명의 기능이 반드시 폐쇄 일 필요는 없지만 대부분의 언어로되어 있지 않으며 그렇지 않을 때는 덜 유용 해집니다.

람다는 .. 컴퓨터 과학이가는 한 그다지 잘 정의되지 않았습니다. 많은 언어 가이 용어조차 사용하지 않습니다. 대신 그들은 단지 그들을 폐쇄 또는 anon 기능이라고 부르거나 자신의 용어를 발명 할 것입니다. LISP에서 Lambda는 단지 익명의 기능입니다. 파이썬에서, 람다는 특히 단일 표현으로 제한 된 익명의 기능이다. 더 이상, 당신은 명명 된 기능이 필요합니다. Lambdas는 두 언어 모두에서 폐쇄됩니다.

다른 팁

또한 클로저 또는 익명 함수라고도합니다. 최고의 설명을 찾았습니다. 여기. 기본적으로 함수에 인수로 전달 될 수있는 인라인 코드 블록.

"람다"는 람다 미적분학 또는 특정 람다 표현. 람다 미적분학은 기본적으로 기능을 다루는 논리와 수학의 분야이며 기능적 프로그래밍 언어.

~ 윌리엄 라일리 랜드

본격적인 함수를 작성하고 싶지 않을 때 가장 일반적으로 대의원에게 할당되는 익명의 함수 선언 인라인 일뿐입니다.

LISP/Scheme과 같은 언어에서는 종종 기능 매개 변수로 매우 자유롭게 통과되지만 C#의 관용구는 일반적으로 LAMDA가 LINQ에서와 같이 기능의 게으른 평가에만 사용되거나 이벤트 처리 코드를 약간 간결하게 만드는 데 사용됩니다.

프로그래밍에는 실제로 '람다'와 같은 것이 없습니다. 그것은 언어 등에 따라 다릅니다.

요컨대, 일반적으로 'Lambdas가있는'언어는 익명 기능 또는 경우에 따라 폐쇄를 위해 용어를 사용합니다. 그렇게, 루비에서 :

f = lambda { return "this is a function with no name" }
puts f.call

이전 답변에 대한 응답으로 :
-익명 함수의 중요한 것은 이름이 필요하지 않다는 것이 아닙니다.
-Closures는 별도의 개념입니다.
-거대한 Wikipedia 기사는 이것을 더 명확하게 만들지 않습니다.

다음은 세 부분으로 구성된 내 대답입니다.
1. 람다는 표현 인 함수입니다. 이것이 중요한 것입니다.
2. 소위 "람다"를 구현하는 많은 언어 구문 설탕 이러한 짧은 기능을보다 쉽고 빠르게 작성하려면 필요하지 않습니다.
3. 일부 언어에는 람다가 가지고 있어야 할 수 있습니다 부작용이 없습니다. 그것은 기능적 의미에서 더 순수한 람다가 될 것입니다.

함수가 표현 일 때는 언어 내에서 "일등석 시민"입니다. 나는 그것으로 모든 중요한 일을 할 수 있습니다.

x = lambda(){ return "Hello World"; }

doit( 1, 2, lambda(a,b){ return a > b; }, 3 )

x = (lambda(a){ return a+1; }) + 5  // type error, not syntax error

(lambda(a,b){ print(a); log(b); })( 1, 2 )  // () is valid operator here

Wikipedia에서 잘린 : http://en.wikipedia.org/wiki/lambda#lambda.2c_the_word

LISP 및 Python과 같은 프로그래밍 언어에서 Lambda는 Lambda 미적분학 사용에 따라 익명 기능 또는 클로저를 나타내는 데 사용되는 연산자입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top