2008-10-14 4 views
12

기능 프로그래밍은 점점 더 많은 반향을 일으키는 컴퓨터 과학의 패러다임 인 것처럼 보입니다.함수 프로그래밍이 어떤 종류의 문제에 적합합니까?

좀 더 전통적인 객체 지향 접근법보다는 함수 프로그래밍 접근법으로 어떤 종류의 문제가 더 잘 해결되는지 궁금합니다.

감사합니다.

+1

해결 많은 하위 문제 하위 하위 문제 ... ) – willasaywhat

+1

나는 내가 인 것으로, 특히보기의 컴퓨터 과학 관점에서 OO을 설명하는 것입니다 확실하지 않다 "보다 전통적인"접근법. OO는 Simula와 함께 60 년대 후반에 시작되었습니다. 50 년대 후반 LISP와 기능적이었다. Smalltalk은 명시 적으로 "객체 지향"이라는 레이블이 붙은 첫 번째 언어로 70 년대 ML에서 동시 개발되었는데, 이것은 ML의 두 번째 세대의 시작으로 간주 될 수 있습니다. –

+0

[가능한 기능 언어가 무엇입니까?] (http://stackoverflow.com/questions/36504/why-functional-languages) –

답변

7

함수 프로그래밍은 많은 상태 문제 나 다른 부작용을 저장해야하는 문제를 제외하고는 일반적으로 객체 지향 프로그래밍을 사용하는 것을 포함하여 대부분의 문제에 가장 적합합니다. 그 외에도 FP는 복잡한 문제를 OOP보다 훨씬 효율적으로 처리합니다. 그 중 많은 부분이 수학적 배경 (람다 계산법으로 시작)에서 나옵니다. 추상화와 구성이 가능한 한 훨씬 더 유연성이 있습니다. 디자인 패턴이 많은 객체 지향 프로그램은 디자인 패턴으로 작성하는 상투적 인 구조없이 동일한 작업을 수행 할 수있는 더 많은 기능적 구성을 사용하여 리팩토링 될 수 있습니다. 수학과 파싱 외에도 FP는 인공 지능 (특히 Lisp)에서 광범위하게 사용됩니다.

6

기능적 프로그래밍은 전역 상태의 사용을 방해하기 때문에 병렬 실행을 수행 할 수있는 프로그램을 만드는 데 적합합니다.

4

기능 언어는 수학 및 통계에서 많이 사용됩니다.

2

나는 Galwegian에 동의 - ". 기능적인 언어 수학 및 통계에 많이 사용된다"

그러나 이것들이 유일한 용도는 아닙니다. 함수형 프로그래밍 언어가 점점 주류가됨에 따라 이들 언어로 작성된 비즈니스 클래스/라이브러리/소프트웨어를 찾기 시작할 것입니다.

3

병렬 실행 지점에 대한 추가 정보로, 함수 언어는 광선 추적과 같은 그래픽 모델링에 적합합니다.

2

많은 수학이있는 거의 모든 것.

1

C++ 템플릿을 작성하는 경우 순수한 기능 언어로 작업하고 있습니다.

2

ML은 컴파일러와 나무를 조작하는 다른 응용 프로그램을 구현하기위한 좋은 기능 언어.

1

XSLT는 XML로 표현 된 데이터 또는 문서의 변환을 수행하기위한 함수형 프로그래밍 언어의 예입니다. 아주 자세하고 매우 제한적입니다. 내가 정확하게 기억한다면 XQuery도 순전히 기능적이다. 트릭은 글로벌 상태에 대한 개념이 없으면 데이터를 제공하고 결과를 소비하는 호스트 프로그램에 있다는 것입니다. 이것은 XSLT 프로그램 (스타일 시트)을 순수하고 재사용 가능하게 유지하는 데 도움이되지만 일종의 (명령형) 프레임 워크를 추가하여 범용 처리 시스템의 일부로 사용할 수 있어야합니다.

1

기본 스프레드 시트는 기능 프로그램으로 볼 수 있습니다. :)

1

데이터 구조.예 : 피보나치 힙 (우선 순위 큐로 자주 사용됨)의 필수 구현을 기능 구현과 비교합니다. 종종 명령형 코드는 100 줄 미만의 코드 일 것이지만 명령형 구현은 더 많은 코드 줄이 될 수 있습니다. 문제의

관련 문제