728x90
반응형
질문 : 실제 세계에서 Haskell은 무엇을 위해 사용됩니까?
Haskell 주변에는 많은 과장이 있지만 실제 응용 프로그램에서 어떻게 사용되는지에 대한 정보를 얻는 것은 어렵습니다. Haskell의 가장 인기있는 프로젝트 / 용법은 무엇이며 이러한 문제를 해결하는 데 탁월한 이유는 무엇입니까?
답변
이 언어의 일반적인 용도는 무엇입니까?
신속한 애플리케이션 개발.
"왜 Haskell인가?"를 알고 싶다면 함수형 프로그래밍 언어의 장점을 고려해야합니다 ( https://c2.com/cgi/wiki?AdvantagesOfFunctionalProgramming 에서 가져옴) :
- 기능적 프로그램은 ImperativeLanguage 대응 프로그램보다 훨씬 간결한 경향이 있습니다. 종종 이것은 프로그래머의 생산성을 향상시킵니다.
- FP는 빠른 프로토 타이핑을 권장합니다. 그렇기 때문에 ExtremeProgrammers를위한 최고의 소프트웨어 디자인 패러다임이라고 생각합니다.하지만 제가 무엇을 압니까?
- FP는 기능 차원에서 모듈 식이며 ObjectOrientedProgramming은 다른 구성 요소 차원에서 모듈 식입니다.
- 케이크를 먹고 먹을 수있는 능력. 메시지를 처리하는 복잡한 OO 시스템이 있다고 상상해보십시오. 모든 구성 요소는 메시지에 따라 상태를 변경 한 다음 메시지를 링크가있는 일부 개체로 전달할 수 있습니다. 호출 계층 구조의 일부 개체가 메시지에 결함이 있다고 판단한 경우 모든 변경 사항을 쉽게 롤백 할 수 있다는 것이 너무 멋지지 않을까요? 다른 주들의 역사를 갖는 것은 어떻습니까?
- 데이터 구조 해체 (PatternMatching), 변수 바인딩 저장 (LexicalScope with Closures), 강력한 유형 지정 (TypeInference), GarbageCollection, 스토리지 할당, boxed (값에 대한 포인터) 또는 unboxed (값 직접 ) 표현 ...
- 안전한 멀티 스레딩! 변경 불가능한 데이터 구조는 데이터 경합 조건의 영향을받지 않으므로 잠금으로 보호 할 필요가 없습니다. 기존 객체를 파괴적으로 조작하지 않고 항상 새 객체를 할당하는 경우 할당 및 GarbageCollection 시스템에서 잠금을 숨길 수 있습니다.
이 외에도 Haskell에는 다음과 같은 장점이 있습니다.
- 수학적 표기법에서 영감을받은 명확하고 직관적 인 구문.
- 기존 목록을 기반으로 목록을 만들기위한 목록 이해.
- Lambda 표현식 : 명시적인 이름을 지정하지 않고 함수를 생성합니다. 따라서 큰 수식을 처리하는 것이 더 쉽습니다.
- Haskell은 완전히 참조 적으로 투명 합니다. I / O를 사용하는 모든 코드는 이와 같이 표시되어야합니다. 이렇게하면 부작용이있는 코드 (예 : 화면에 텍스트 배치)가없는 코드 (계산)가없는 코드와 분리 할 수 있습니다.
- 지연 평가는 정말 좋은 기능입니다.
- 일반적으로 오류가 발생하더라도 결과를 사용하지 않는 한 여전히 작동합니다. 예를 들어 1 / 0 을 입력 할 수 있으며 두 번째 항목 만 사용한 경우에도 계속 작동합니다.
- 이 스도쿠 솔버와 같은 검색 프로그램을 작성하는 것이 더 쉽습니다. 모든 조합을 한꺼번에로드하지 않고 진행되는대로 생성하기 때문입니다. 다른 언어로도 가능하지만기본적으로 Haskell 만 가능합니다.
다음 링크를 확인할 수 있습니다.
- https://c2.com/cgi/wiki?AdvantagesOfFunctionalProgramming
- https://docs.microsoft.com/archive/blogs/wesdyer/why-functional-programming-is-important-in-a-mixed-environment
- https://web.archive.org/web/20160626145828/http://blog.kickino.org/archives/2007/05/22/T22_34_16/
- https://useless-factor.blogspot.com/2007/05/advantage-of-functional-programming.html
출처 : https://stackoverflow.com/questions/1604790/what-is-haskell-used-for-in-the-real-world
728x90
반응형
'개발관련 > other' 카테고리의 다른 글
Angular / RxJs`Subscription` 구독 취소 시기 (0) | 2021.09.30 |
---|---|
오래되고 사용되지 않는 Docker 이미지를 제거하는 방법 (0) | 2021.09.29 |
deep copy와 shallow copy의 차이점 (0) | 2021.09.28 |
JSON.NET 오류 "Error Self referencing loop detected for type System.data.entity occurs" (0) | 2021.09.28 |
Node Sass 오류 "couldn't find a binding for your current environment" (0) | 2021.09.27 |