"람다"코드 란 무엇입니까?


17

최근에 사람들이 코드가 "람다"라고 말하는 것을 들었습니다. 나는이 구절을 들어 본 적이 없다. 무슨 뜻인가요?


그게했다. 여러번. 나는 그것을 몇 번 시도했지만 슬프게도 성공하지 못했습니다. 운이 좋을까요? 응답 한 사람들에게 감사합니다.
Oliver Moran

10
@Oliver, 여기에 질문을하는 것의 일부는 사람들이 당신이했던 것과 같은 일을 시도하지 않고 붙어 있지 않도록 그 질문에 대답하기 위해 무엇을했는지 보여줍니다. Wikipedia 또는 Google 링크에서 혼란스러워하는 위치를 지정하면 일반적인 수준에서 질문에 대한 답변이 향상되어 이전에 얻지 못한 내용을 참조하기 때문에 원하는 답변이 아닐 수도 있습니다. 다른 사람이 게시 한 내용을 시도하고 어떻게되는지 확인하십시오. 어떤 결과에 놀라실 수도 있습니다.
JB King

7
랩이 이것으로 만들어 질 수 있다고 생각합니다 – "내 코드는 람다". 그러나 나는 그것을 가치가있는 리듬으로 할 수 없습니다. :-)
Paul Nathan

1
@JB King + JB King-정중 한 의견에 감사드립니다. 넓은 의미에서, 당신이 말하는 것은 합리적입니다. 그러나 쿼리에 따라 간결하고 열린 질문이 다른 곳에서는 찾을 수없는 종류의 답을 이끌어내는 데 더 좋습니다. 내 질문은 내가 찾던 종류의 답변을 정확하게 이끌어 냈습니다. 나는 그것을 그렇게 표현했습니다. 아래 답변이 같은 질문을 가진 다른 사람들에게 유용하기를 바랍니다. 일부는 질문에 실망한 동시에 답변에 만족하는 것은 아이러니합니다.
Oliver Moran

2
@Paul Nathan-당신은 코드이므로 람다는 어떤 표준에도 맞지 않을 계획입니다. 샌더보다 거칠다!
glenatron

답변:


20

람다 식은 추상화 (익명 함수라고도 함), 응용 프로그램 또는 변수 (대부분의 언어는이 목록에 상수를 추가 함)입니다. Lambda 용어는 반드시 함수일 필요는 없으며 매개 변수로 전달 될 필요는 없지만 일반적인 관행입니다.

C #에서 람다 식의 일반적인 예

예를 들면 다음과 같습니다.

List<int> items = new List<int>();
items.add(1);
items.add(2);
items.add(1);
items.add(3);

int CountofOnes = items.FindAll(item => item == 1).Count();

Console.Out.WriteLine(CountofOnes);

출력 : 2

이 코드에서는 람다 구성을 FindAll.NET List객체 의 함수에 전달 합니다.

items.FindAll(item => item == 1)

이 호출에서 람다는 간단한 방정식을 실행하고 부울을 반환 FindAll하여 수행 할 작업을 알려줍니다 .


2
사실이 아닙니다. Lambda 표현식은 추상화 (반드시 작은 것은 아님 ), 애플리케이션 또는 변수입니다 (대부분의 언어는이 목록에 상수를 추가합니다). Lambda 용어는 반드시 함수일 필요는 없으며 매개 변수로 전달 될 필요는 없습니다.
SK-logic

네 말이 맞아, 명확성을 위해 대답을 수정하겠습니다.
Timothy Groote

3
함수가 아닌 람다 식의 예를 들어주세요.
Ingo

1
@Ingo, 이것은 물론 람다 미적분학의 용어입니다. en.wikipedia.org/wiki/Lambda_calculus#Lambda_terms
SK-logic

1
@ SK-logic 나는 그것을 다르게 보는 것을 선호합니다. Haskell 및 C #과 같은 언어를 사용하면 let (rec) 구문 또는 "super-combinators"(예 : 최상위 함수 바인딩) 형식으로 이름에 함수를 바인딩 할 수 있습니다. 여기에 원래 람다 용어를 적용하는 것이 옳다고 느끼지 않습니다. LC에서는 그러한 일이 불가능하기 때문에 (재귀를 위해 Y 결합기가 필요한 이유). Haskell에서 ((\ xy-> x) a)와 (const a)의 결과는 동일하며 둘 다 응용 프로그램이지만 "lambda application"이라는 첫 번째 용어 만 사용합니다.
Ingo

3

익명 (명명되지 않은) 함수 또는 일반적으로 다른 함수에 대한 인수로 인라인되는 객체입니다.

따라서 네임 스페이스의 오염이 줄어 듭니다.


1

Lambda는 일반적으로 함수형 프로그래밍 컨텍스트에서 함수 식을 나타냅니다.

이것은 파이썬에서 람다 식입니다.

lambda x: x + 1

매개 변수 x를 1 씩 증가시키는 함수를 나타 냅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.