목록 또는 배열에서 작동하기위한 일부 고차 함수가 반복적으로 채택되거나 재창조되었습니다. 함수 맵 , 접기 [ l | r ] 및 필터 는 Scheme, ML 및 Python과 같이 공통 조상이없는 것으로 보이는 여러 프로그래밍 언어로 함께 발견됩니다. 질문에 집중하기 위해이 세 가지 이름을 사용하겠습니다.
이름이 보편적이지 않다는 것을 보여주기 위해 다음은 다른 언어로 된 동등한 기능에 대한 이름의 샘플입니다. C ++은 필터 대신 map 및 remove_if 대신 변환을 사용 합니다 (조건 자의 의미를 뒤집 음). 리스프가 mapcar 등등을 대신 지도를 , 제거-IF-하지 않고 필터 및 감소 대신에 배는 (일부 현대 리스프는이 변형 지도를 하지만,이 나타납니다가 될 파생 된 형태 .) C #을 사용하는이 선택 대신 지도 와 어디 대신필터 . C #의 이름은 LINQ 를 통해 SQL에서 왔으며 이름 변경에도 불구하고 그 기능은 Haskell의 영향을 받았으며 이는 ML의 영향을 받았습니다.
map , fold 및 filter 이름 은 널리 사용되지만 보편적이지 않습니다. 이것은 그들이 영향력있는 출처에서 다른 현대 언어로 빌려 왔다는 것을 암시합니다. 이 함수 이름은 어디에서 왔습니까?
mapcar
는 차 에있는지도입니다 (cdr 대신).
filter
정확하게 수행합니다-데이터를 필터링합니다. 꽤 명백한 것 같습니다.
map
입력 변환에서 출력 범위까지의 "매핑"으로 세트 변환을 설명하는 수학적 세트 이론에서 나옵니다.