맨위로가기

익명 함수

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

익명 함수는 이름을 지정하지 않고 사용되는 함수로, 람다 대수에서 유래된 "람다 함수" 또는 "람다 표현식"이라고도 불린다. 주로 클로저, 커링, 정렬, 고차 함수 등에서 활용되며, 특정 기능을 간결하게 표현하거나 일회성으로 사용되는 함수를 정의할 때 유용하다. 다양한 프로그래밍 언어에서 지원하며, C#, 자바, 파이썬, 자바스크립트 등에서 람다식 또는 유사한 기능을 제공한다. 익명 함수는 코드의 간결성을 높이지만, 재귀 호출에 제약이 있을 수 있으며, 디버깅이 어려울 수 있다는 단점도 존재한다.

더 읽어볼만한 페이지

  • 람다 대수 - 커링
    커링은 다수의 인수를 취하는 함수를 단일 인수를 취하는 함수들의 연속으로 변환하는 기법으로, 함수형 프로그래밍에서 다인수 함수를 분해하여 적용하는 방식이며, 논리학과 컴퓨터 과학에서 널리 활용되는 중요한 개념이다.
  • 람다 대수 - 데카르트 닫힌 범주
    데카르트 닫힌 범주는 종단 대상, 대상의 곱, 지수 대상을 가지는 범주로서, 곱에 대한 닫힌 모노이드 범주로 정의되며, 커리-하워드-램백 대응을 통해 논리학, 람다 계산과 관련되고 토포스 이론의 기초가 된다.
  • 함수형 프로그래밍 - 패턴 매칭
    패턴 매칭은 데이터 구조나 문자열에서 특정 패턴을 찾아 식별하는 기법으로, 다양한 프로그래밍 언어와 시스템에서 사용되며 데이터 필터링, 추출 및 선언적 프로그래밍에 중요한 역할을 수행한다.
  • 함수형 프로그래밍 - 대수적 자료형
    대수적 자료형은 합 타입과 곱 타입을 조합하여 새로운 자료형을 정의하는 방법으로, 단일 연결 리스트나 이진 트리와 같은 자료 구조를 표현하고 패턴 매칭을 통해 자료형의 구조를 분해 및 처리하는 데 유용하며, 함수형 프로그래밍 언어에서 널리 사용된다.
  • 함수 (프로그래밍) - 사용자 정의 함수
    사용자 정의 함수는 프로그래밍 언어와 데이터베이스 시스템에서 사용자가 직접 정의하여 재사용할 수 있는 코드 블록이다.
  • 함수 (프로그래밍) - 코루틴
    코루틴은 실행을 멈췄다가 다시 시작할 수 있는 서브루틴의 특별한 형태로, 로컬 데이터를 보존하며 다양한 방식으로 구현되고 여러 프로그래밍 상황에서 유용하게 쓰인다.
익명 함수
일반 정보
이름익명 함수
다른 이름람다 추상
람다 표현식
함수 리터럴
람다 함수
정의이름이 지정되지 않은 함수 정의
용도고차 함수의 인수로 전달
함수를 반환하는 함수 내에서 생성
연산자 우선순위 문제 해결
특징
표현간결하고 문맥에 맞는 표현
사용코드의 가독성 향상 및 유지 관리 용이
지원 언어C++
C 샤프
자바
자바스크립트
파이썬
역사 및 이론
기원람다 대수 (알론조 처치)
람다 대수익명 함수에 대한 수학적 형식화
활용 예시
정렬사용자 정의 기준으로 컬렉션 정렬
이벤트 핸들러UI 이벤트에 대한 응답 정의
병렬 처리데이터 컬렉션에 대한 병렬 연산
장점
간결성함수 정의 간소화
유연성함수형 프로그래밍 패러다임 지원
캡처링주변 범위에서 변수 캡처
단점
가독성 저하과도한 사용 시 코드 가독성 저하 가능성
디버깅 어려움익명성으로 인해 디버깅이 더 어려울 수 있음
이름 충돌캡처된 변수와 이름 충돌 가능성
프로그래밍 언어별 지원
C++람다 표현식 지원 (C++11부터)
C 샤프람다 표현식 지원 (C# 3.0부터)
자바람다 표현식 지원 (Java 8부터)
자바스크립트람다 표현식 지원 (ES6부터, 화살표 함수)
파이썬람다 함수 지원

2. 명칭

"람다 추상", "람다 함수", "람다 표현식"이라는 이름은 람다 대수에서 함수 추상화를 표기하는 데 사용되며, 일반적인 함수 는 로 표기되며, 여기서 은 를 사용하는 표현식이다. 이는 파이썬 구문 lambda x: M과 비교할 수 있다.[57]

"화살표 함수"라는 이름은 수학적인 "사상" 기호 를 의미한다. 이는 자바스크립트 구문 x => M과 비교할 수 있다.[57]

3. 용도

익명 함수는 이름을 지정할 필요 없이 단기간 사용할 기능을 포함하는 데 사용된다. 클로저와 커링이 대표적인 예시이다.

익명 함수 사용은 스타일의 문제로, 명명된 함수로 대체할 수 있다. 그러나 익명 함수는 더 간결한 표기법을 제공하는 경우가 많다. 일부 프로그래밍 언어에서는 콜백에 이벤트를 바인딩하거나 특정 값에 대해 함수를 인스턴스화하는 등 특수한 목적으로 익명 함수를 활용하기도 한다.

특히 C++에서는 알고리즘 함수 템플릿에서 술어(predicate)로 함수 객체를 명시적으로 정의할 필요가 없어, 간결한 코드를 작성하기 쉽다.

3. 1. 정렬

비표준적인 방식으로 정렬할 때, 정렬 로직을 명명된 함수를 생성하는 대신 익명 함수로 포함하는 것이 더 쉬울 수 있다. 대부분의 언어는 임의의 객체를 정렬하는 정렬 알고리즘을 구현하는 일반적인 정렬 함수를 제공한다. 이 함수는 일반적으로 두 요소가 같은지, 아니면 하나가 다른 것보다 크거나 작은지를 결정하는 임의의 함수를 허용한다.

문자열 목록을 문자열의 길이별로 정렬하는 다음 파이썬 코드를 보자.

```python

>>> a = ['house', 'car', 'bike']

>>> a.sort(key=lambda x: len(x))

>>> a

['car', 'bike', 'house']

```

위 예제의 익명 함수는 람다 표현식이다.

```python

lambda x: len(x)

```

익명 함수는 하나의 인수 `x`를 받아 해당 인수의 길이를 반환하며, 이는 `sort()` 메서드에서 정렬 기준으로 사용된다.

파이썬에서 람다 함수의 기본 구문은 다음과 같다.

```python

lambda arg1, arg2, arg3, ...: <인수를 조작하여 값을 반환하는 연산>

```

람다 함수에서 반환된 표현식은 변수에 할당되어 코드의 여러 위치에서 사용할 수 있다.

```python

>>> add = lambda a: a + a

>>> add(20)

40

```

다음은 목록의 항목을 해당 클래스 이름으로 정렬하는 예시이다. (파이썬에서 모든 것은 클래스를 갖는다.)

```python

>>> a = [10, 'number', 11.2]

>>> a.sort(key=lambda x: x.__class__.__name__)

>>> a

[11.2, 10, 'number']

```

`11.2`의 클래스 이름은 "float"이고, `10`의 클래스 이름은 "int"이며, `'number'`의 클래스 이름은 "str"이다. 정렬된 순서는 "float", "int", "str"이다.

특히 C++에서는 알고리즘 함수 템플릿에서의 술어(predicate)로서의 함수 객체의 명시적인 정의가 불필요해져 간결한 코드를 작성하기 쉬워진다. 다음은 C++14에서의 예시이다.

```c++

#include

#include

#include

int main() {

const std::vector ary { 1, 5, -1, 3, 0, -2, };

std::cout << "Count of negative numbers = " << std::count_if(ary.begin(), ary.end(), [](auto x) { return x < 0; }) << std::endl;

return 0;

}

3. 2. 클로저

클로저는 바운드 변수를 포함하는 환경에서 평가되는 함수이다. 다음은 입력값을 임계값과 비교하는 익명 함수에서 "threshold" 변수를 바인딩하는 예시이다.

```python

def comp(threshold):

return lambda x: x < threshold

```

이는 일종의 비교 함수 생성기로 사용될 수 있다.

```python

>>> func_a = comp(10)

>>> func_b = comp(20)

>>> print(func_a(5), func_a(8), func_a(13), func_a(21))

True True False False

>>> print(func_b(5), func_b(8), func_b(13), func_b(21))

True True True False

```

가능한 모든 비교 함수에 대해 함수를 생성하는 것은 비실용적일 수 있으며, 임계값을 추가로 사용하기 위해 유지하는 것은 너무 불편할 수 있다. 클로저를 사용하는 이유와 관계없이 익명 함수는 비교를 수행하는 기능을 포함하는 개체이다.

3. 3. 커링

커링은 여러 입력을 받는 함수를 단일 입력을 받는 함수들의 체인으로 변환하는 과정이다. 아래 예시는 임의의 정수로 나눗셈을 수행하는 함수를 특정 정수로 나눗셈을 수행하는 함수로 변환하는 파이썬 코드이다.

```python

>>> def divide(x, y):

... return x / y

>>> def divisor(d):

... return lambda x: divide(x, d)

>>> half = divisor(2)

>>> third = divisor(3)

>>> print(half(32), third(32))

16.0 10.666666666666666

>>> print(half(40), third(40))

20.0 13.333333333333334

```

위 예제에서 `divisor` 함수는 지정된 제수(`d`)로 함수를 생성한다. `half`와 `third` 함수는 `divide` 함수를 고정된 제수로 커링한다. 즉, `half`는 2로 나누는 함수가 되고, `third`는 3으로 나누는 함수가 된다.

`divisor` 함수는 변수 `d`를 바인딩하여 클로저를 형성한다. 익명 함수를 사용하여 커링을 구현할 수 있지만, 위 예시처럼 흔하게 사용되지는 않는다.

3. 4. 고차 함수

고차 함수는 함수를 인수로 받거나 함수를 결과로 반환하는 함수이다. 이는 일반적으로 정의된 함수의 동작, 종종 루프 구조 또는 재귀 체계를 사용자 정의하는 데 사용된다. 익명 함수는 이러한 함수 인수를 지정하는 편리한 방법을 제공한다. 주요 고차 함수에는 Map, Filter, Fold가 있다.

  • Map 함수는 리스트의 각 요소에 함수 호출을 수행한다. 다음 예시는 익명 함수를 사용하여 배열의 모든 요소를 제곱한다.


```python

>>> a = [1, 2, 3, 4, 5, 6]

>>> list(map(lambda x: x*x, a))

[1, 4, 9, 16, 25, 36]

```

위 코드에서 익명 함수는 인수를 받아 자기 자신을 곱한다(제곱한다).

  • Filter 함수는 특정 함수에 전달되었을 때 True로 평가되는 리스트의 모든 요소를 반환한다.


```python

>>> a = [1, 2, 3, 4, 5, 6]

>>> list(filter(lambda x: x % 2 == 0, a))

[2, 4, 6]

```

위 코드에서 익명 함수는 전달된 인수가 짝수인지 확인한다.

  • Fold 함수는 구조 내의 모든 요소에 대해 실행되며 (리스트의 경우 일반적으로 왼쪽에서 오른쪽으로 진행되며, "왼쪽 접기"라고 하며 파이썬에서는 `reduce`라고 함) 진행하면서 값을 누적한다. 이는 예를 들어 구조의 모든 요소를 하나의 값으로 결합하는 데 사용할 수 있다.


```python

>>> from functools import reduce

>>> a = [1, 2, 3, 4, 5]

>>> reduce(lambda x,y: x*y, a)

120

```

위 코드는 다음을 수행한다.

:

\left(

\left(

\left(

1 \times 2

\right)

\times 3

\right)

\times 4

\right)

\times 5

= 120.



여기서 익명 함수는 두 인수의 곱셈이다.

접기(Fold)의 결과는 하나의 값일 필요는 없다. 맵(Map)과 필터(Filter) 모두 접기를 사용하여 만들 수 있다. 맵에서 누적되는 값은 원래 리스트의 각 요소에 함수를 적용한 결과가 포함된 새 리스트이다. 필터에서 누적되는 값은 주어진 조건과 일치하는 요소만 포함하는 새 리스트이다.

4. 언어별 지원

다음은 다양한 프로그래밍 언어에서 익명 함수를 어떻게 지원하는지에 대한 표이다.

언어별 익명 함수 지원 현황
언어지원 여부비고
액션스크립트
에이다부분 지원에이다 2012의 일부인 표현식 함수, access-to-subprogram[4]
ALGOL 68
APLDyalog, ngn 및 dzaima APL은 dfns와 묵시적 함수를 모두 완전히 지원. GNU APL은 dfns에 대한 지원이 다소 제한적.
어셈블리어아니오
AHKAutoHotkey V2부터 JavaScript와 유사한 구문으로 익명 함수 지원.
Bash부분 지원Bash에서 익명 함수를 지원하기 위해 라이브러리가 만들어짐.[5]
C아니오Clang에서 지원되며 LLVM 컴파일러-rt 라이브러리와 함께 제공. GCC는 사용 가능성을 활성화하는 매크로 구현에 대한 지원을 제공.
C#[6]
C++C++11 표준부터 지원.
CFMLRailo 4부터,[7] ColdFusion 10[8]
Clojure[9]
COBOL아니오Micro Focus의 비표준 Managed COBOL 방언은 익명 대리자/메소드라고 하는 람다를 지원.[10]
D[11]
다트[12]
델파이[13]
딜런[14]
에펠
Elm[15]
Elixir[16]
Erlang[17]
F#[18]
엑셀엑셀 워크시트 함수, 2021 베타 릴리스[19]
Factor"인용"이 이를 지원[20]
포트란아니오
Frink[21]
Go[22]
Gosu[23]
Groovy[24]
하스켈[25]
Haxe[26]
자바자바 8부터 지원.
자바스크립트[27]
줄리아[28]
코틀린[29]
리스프
Logtalk
Lua[30]
MUMPS아니오
메이플[31]
MATLAB[32]
Maxima[33]
Nim[34]
OCaml[35]
옥타브[36]
오브젝트 파스칼부분 지원오브젝트 파스칼의 방언인 델파이는 델파이 2009부터 익명 함수(익명 메소드)를 기본적으로 지원. Oxygene 오브젝트 파스칼 방언도 이를 지원.
Objective-C (Mac OS X 10.6+)블록이라고 함. Objective-C 외에도 블록은 Apple 플랫폼에서 프로그래밍할 때 C 및 C++에서도 사용 가능.
OpenSCAD버전 2021.01부터 함수 리터럴 지원이 도입.[37]
파스칼아니오
[38]
PHPPHP 5.3.0부터 진정한 익명 함수가 지원.[39] 이전에는 C#의 구현과 매우 유사하게 작동하는 부분 익명 함수만 지원.
PL/I아니오
파이썬부분 지원파이썬은 lambda 구문을 통해 익명 함수를 지원.[40] 이 구문은 문이 아닌 표현식만 지원.
R
Racket[41]
Raku[42]
Rexx아니오
RPG아니오
루비루비의 익명 함수는 스몰토크에서 상속되었으며, 블록이라고 함.[43]
러스트[44]
스칼라[45]
Scheme
스몰토크스몰토크의 익명 함수는 블록이라고 함.
표준 ML[46]
스위프트스위프트의 익명 함수는 클로저라고 함.[47]
TypeScript[48]
Typst[49]
Tcl[50]
Vala[50]
Visual Basic .NET v9[51]
Visual Prolog v 7.2[52]
Wolfram Language[53]
Zig아니오[54]



함수를 일급 함수로 취급하는 언어(딜런, 하스켈, 자바스크립트, 리스프, ML, , 파이썬, 루비, Scheme)는 일반적으로 익명 함수를 지원한다.

정적으로 형식화된 언어 중에서도 C++, C#, 델파이, 자바(자바 8 이후) 등은 익명 함수를 지원한다.

5. 언어별 예시

익명 함수는 여러 프로그래밍 언어에서 다양한 방식으로 구현된다.

언어설명예시
Haskell백슬래시(\)를 사용하여 람다식을 나타낸다. 이는 그리스 문자 람다(λ)와 유사하기 때문이다.[57]
C#C# 3.0부터 람다식이 도입되었다.
C++C++11부터 람다식이 도입되었다.
JavaJava 8부터 람다식이 도입되었다.
C#익명 메서드와 람다식 두 가지 종류가 있다.[58] 익명 메서드는 C# 2.0에서, 람다식은 C# 3.0에서 도입되었다. 람다식이 더 간결하고 식 트리로 다룰 수 있어 주로 사용된다.[59]
자바스크립트`function` 키워드를 사용한다.
ECMAScript 2015화살표 함수 표기법도 사용할 수 있다.
Lua모든 함수는 본질적으로 익명 함수이다. 이름이 있는 함수는 함수 객체에 대한 참조를 저장하는 변수일 뿐이다.
파이썬`lambda` 키워드를 사용하며, 람다식 내에는 식(expression)만 사용할 수 있고 문장(statement)은 사용할 수 없다.


6. 장단점

익명 함수는 이름을 지정할 필요 없이 단기적으로 사용할 수 있다. 클로저와 커링이 그 예시이다.

익명 함수 사용은 스타일 문제이며, 필수적인 것은 아니다. 익명 함수 대신 명명된 함수를 정의하고 호출할 수도 있다. 익명 함수는 명명된 함수보다 간결한 표기법을 제공하기도 한다. 그러나 익명 함수는 별도의 테스트가 어렵고, 설명적인 이름이 없어 이해하기 어려울 수 있다.

일부 프로그래밍 언어에서 익명 함수는 콜백에 이벤트를 바인딩하거나 특정 값에 함수를 인스턴스화하는 등의 목적으로 구현되며, 이는 동적 프로그래밍 언어에서 명명된 함수를 호출하는 것보다 효율적이고 가독성이 좋을 수 있다.

C#에는 익명 메서드와 람다식 두 종류의 익명 함수 표기법이 있다.[58][59] 람다식이 더 간결하며 식 트리로 다룰 수 있어 C# 3.0 이후에는 주로 람다식을 사용한다. 익명 메서드는 매개변수 목록을 생략할 수 있다는 장점이 있다. 람다식이나 익명 메서드가 대리자 매개변수로 전달되면 컴파일러에 의해 자동으로 명명된 클래스와 멤버 메서드가 생성되어, 컴파일 후에는 통상적인 대리자 호출과 동작적으로 거의 차이가 없다.

6. 1. 장점

익명 함수는 이름을 지정할 필요가 없어 일회성으로 사용하기에 유용하다. 이러한 특성 덕분에 다음과 같은 장점을 가진다.

  • 이름 충돌 방지: 한 번만 사용하는 함수에 이름을 붙일 필요가 없으므로, 다른 함수와 이름이 충돌될 걱정을 할 필요가 없다.
  • 코드 간결성: 함수의 인수 등에 직접 익명 함수를 전달할 수 있어 코드가 간결해진다. 특히 C++에서는 알고리즘 함수 템플릿에서 술어(predicate)로 함수 객체를 명시적으로 정의하지 않아도 되므로 코드를 간결하게 작성할 수 있다.[57]


다음은 C++14에서의 예시이다.

```c++

#include

#include

#include

int main() {

const std::vector ary { 1, 5, -1, 3, 0, -2, };

std::cout << "Count of negative numbers = " << std::count_if(ary.begin(), ary.end(), [](auto x) { return x < 0; }) << std::endl;

return 0;

}

```

위 코드에서 `[](auto x) { return x < 0; }` 부분이 익명 함수에 해당하며, 이 함수는 `std::count_if` 함수의 술어로 사용되어 음수의 개수를 세는 데 사용된다.

6. 2. 단점

익명 함수는 이름으로 참조할 수 없기 때문에 재귀 호출을 위해서는 무명 재귀와 같은 특별한 기술이 필요하다.[57]

또한, 일부 프로그래밍 언어에서는 람다식이 일반적인 함수나 메서드보다 기능이 제한될 수 있다. C#에서는 람다식의 이러한 단점을 보완하기 위해 C# 7.0부터 로컬 함수를 도입하여 사용하고 있다.

참조

[1] 웹사이트 Higher order functions http://learnyouahask[...] learnyouahaskell.com 2014-12-03
[2] 서적 Models of Computation: An Introduction to Computability Theory https://books.google[...] Springer Science & Business Media
[3] 웹사이트 Arrow function expressions - JavaScript https://developer.mo[...] 2019-08-21
[4] 웹사이트 Access Types https://www.adaic.or[...] 2024-06-27
[5] 웹사이트 Bash lambda https://github.com/s[...] 2019-03-08
[6] 웹사이트 Lambda expressions - C# reference https://docs.microso[...] 2020-11-24
[7] 웹사이트 Closure support http://www.getrailo.[...] 2014-01-05
[8] 웹사이트 Whats new in ColdFusion 10 https://learn.adobe.[...] 2014-01-05
[9] 웹사이트 Clojure - Higher Order Functions https://clojure.org/[...] 2022-01-14
[10] 웹사이트 Managed COBOL Reference http://documentation[...] Micro Focus 2014-02-25
[11] 웹사이트 Functions - D Programming Language https://dlang.org/sp[...] 2022-01-14
[12] 웹사이트 A tour of the Dart language https://dart.dev/gui[...] 2020-11-24
[13] 웹사이트 Anonymous Methods in Delphi - RAD Studio http://docwiki.embar[...] 2020-11-24
[14] 웹사이트 Functions — Dylan Programming https://opendylan.or[...] 2022-01-14
[15] 웹사이트 docs/syntax https://elm-lang.org[...] 2022-01-14
[16] 웹사이트 Erlang/Elixir Syntax: A Crash Course https://elixir-lang.[...] 2020-11-24
[17] 웹사이트 Erlang -- Funs https://erlang.org/d[...] 2020-11-24
[18] 웹사이트 Lambda Expressions: The fun Keyword - F# https://docs.microso[...] 2020-11-24
[19] 웹사이트 LAMBDA: The ultimate Excel worksheet function https://www.microsof[...] 2021-01-25
[20] 웹사이트 Quotations - Factor Documentation http://docs.factorco[...] 2015-12-26
[21] 웹사이트 Frink https://frinklang.or[...] 2020-11-24
[22] 웹사이트 Anonymous Functions in GoLang https://golangdocs.c[...] 2020-01-09
[23] 웹사이트 Gosu Documentation http://gosu-lang.org[...] 2013-03-04
[24] 웹사이트 Groovy Documentation http://groovy.codeha[...] 2012-05-29
[25] 웹사이트 Anonymous function - HaskellWiki https://wiki.haskell[...] 2022-01-14
[26] 웹사이트 Lambda https://haxe.org/man[...] 2022-01-14
[27] 웹사이트 Functions - JavaScript {{!}} MDN https://developer.mo[...] 2022-01-14
[28] 웹사이트 Functions · The Julia Language https://docs.juliala[...] 2020-11-24
[29] 웹사이트 Higher-Order Functions and Lambdas - Kotlin Programming Language https://kotlinlang.o[...] 2020-11-24
[30] 웹사이트 Programming in Lua : 6 https://www.lua.org/[...] 2020-11-24
[31] 웹사이트 Maple Programming: 1.6: Anonymous functions and expressions - Application Center https://www.maplesof[...] 2020-11-24
[32] 웹사이트 Anonymous Functions - MATLAB & Simulink https://www.mathwork[...] 2022-01-14
[33] 웹사이트 Maxima 5.17.1 Manual: 39. Function Definition http://maths.cnam.fr[...] 2020-11-24
[34] 웹사이트 Nim Manual https://nim-lang.git[...]
[35] 웹사이트 Code Examples – OCaml https://ocaml.org/le[...] 2020-11-24
[36] 웹사이트 GNU Octave: Anonymous Functions https://octave.org/d[...] 2020-11-24
[37] 웹사이트 Function Literals https://en.wikibooks[...] Wikibooks 2021-02-22
[38] 웹사이트 perlsub - Perl subroutines - Perldoc Browser https://perldoc.perl[...] 2020-11-24
[39] 웹사이트 PHP: Anonymous functions - Manual https://www.php.net/[...] 2020-11-24
[40] 웹사이트 6. Expressions — Python 3.9.0 documentation https://docs.python.[...] 2020-11-24
[41] 웹사이트 4.4 Functions: lambda https://docs.racket-[...] 2020-11-24
[42] 웹사이트 Functions https://docs.raku.or[...] 2022-01-14
[43] 웹사이트 Understanding Ruby Blocks, Procs and Lambdas https://web.archive.[...] Reactive.IO 2008-12-21
[44] 웹사이트 Closures: Anonymous Functions that Can Capture Their Environment - The Rust Programming Language https://doc.rust-lan[...] 2022-01-14
[45] 웹사이트 Anonymous Functions https://docs.scala-l[...] 2022-01-14
[46] 웹사이트 Recitation 3: Higher order functions https://www.cs.corne[...] 2022-01-14
[47] 웹사이트 Closures — The Swift Programming Language (Swift 5.5) https://docs.swift.o[...]
[48] 웹사이트 Documentation - Everyday Types https://www.typescri[...] 2022-01-14
[49] 웹사이트 Function Type - Typst Documentation https://typst.app/do[...] 2024-09-10
[50] 웹사이트 Projects/Vala/Tutorial - GNOME Wiki! https://wiki.gnome.o[...] 2020-11-24
[51] 웹사이트 Lambda Expressions - Visual Basic https://docs.microso[...] 2021-09-15
[52] 웹사이트 Language Reference/Terms/Anonymous Predicates - wiki.visual-prolog.com https://wiki.visual-[...] 2022-01-14
[53] 웹사이트 Pure Anonymous Function: Elementary Introduction to the Wolfram Language https://www.wolfram.[...] 2022-01-14
[54] 웹사이트 Lambdas, Closures and everything in between · Issue #1048 · ziglang/zig https://github.com/z[...] 2023-08-21
[55] 문서 anonymous function에 대한 설명
[56] 온라인 강의 Introduction to Data Science in Python https://www.coursera[...] 2018-06-13
[57] 웹사이트 Anonymous function - HaskellWiki https://wiki.haskell[...]
[58] 웹사이트 匿名関数 (C# プログラミング ガイド) | Microsoft Docs https://docs.microso[...]
[59] 웹사이트 匿名メソッド (C# プログラミング ガイド) | Microsoft Docs https://docs.microso[...]
[60] 웹인용 Higher order functions http://learnyouahask[...] learnyouahaskell.com 2014-12-03
[61] 서적 Models of Computation: An Introduction to Computability Theory https://books.google[...] Springer Science & Business Media



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com