난 당신이 같은 요구하는지 해석 할 것 "고차 함수 (지도, 감소, 필터, ...)과 불변 데이터 구조 (튜플, 죄수리스트, 기록,지도, 세트,은 ...) FP 언어 전반에 걸쳐 공통적으로 사용됩니까? " 그리고 나는 말할 것이다, 절대적으로 긍정.
OOP에는 잘 알려진 기둥 (캡슐화, 상속, 다형성)이 있습니다. 함수 프로그래밍의 "기둥"은 1) 기능을 1 등 값으로 사용하고 2) 부작용없이 표현하는 것입니다. (! F 번호가 BTW 탁월한 선택입니다)
당신은 가능성이 다양한 FP 언어에서 이러한 아이디어를 적용하는 일반적인 도구를 찾을 수 있습니다 그리고 당신은 그들이 주류 언어로 자신의 길을 찾아 볼 수 있습니다; LINQ의 Select = map, Aggregate = reduce/fold, Where = 필터, C#은 간단한 가중치 람다 구문, System.Tuple 등이 있습니다.
비공식적 인 FP 언어에서 일반적으로 누락 된 것으로 보이는 것은 좋은 불변의 데이터 구조와 구문 지원 (라이브러리가 아닌)이며 이로 인해 2 번 기둥에 붙지 않게됩니다. 그 언어들. F # 목록, 레코드, 튜플 등은 모두 훌륭한 언어 및 라이브러리에 대한 좋은 예입니다.
다형성은 객체 지향 개념이 아닙니다. 이는 여러 가지 "구현"이 많은 일반적인 개념입니다. 당신이 아마 참조하는 것은 "아형 다형성"입니다. 기능적 언어는 "파라 메트릭 다형성"또는 "Ad-hoc polymorphism"을 사용합니다. –