하스켈 주변에는 과대 광고가 있지만 실제 응용 프로그램에서 어떻게 사용되는지에 대한 정보를 얻기는 어렵습니다. Haskell의 가장 인기있는 프로젝트 / 용법은 무엇이며 왜 이러한 문제를 해결하는 데 탁월합니까?
하스켈 주변에는 과대 광고가 있지만 실제 응용 프로그램에서 어떻게 사용되는지에 대한 정보를 얻기는 어렵습니다. Haskell의 가장 인기있는 프로젝트 / 용법은 무엇이며 왜 이러한 문제를 해결하는 데 탁월합니까?
답변:
이 언어의 일반적인 용도는 무엇입니까?
신속한 응용 프로그램 개발.
"왜 Haskell?"을 알고 싶다면 기능 프로그래밍 언어의 장점 ( https://c2.com/cgi/wiki?AdvantagesOfFunctionalProgramming ) 을 고려해야합니다 .
기능적 프로그램은 ImperativeLanguage 프로그램보다 훨씬 간결한 경향이 있습니다. 이것은 종종 프로그래머 생산성 향상으로 이어집니다
FP는 빠른 프로토 타이핑을 권장합니다. 따라서 나는 이것이 ExtremeProgrammers를위한 최고의 소프트웨어 디자인 패러다임이라고 생각합니다. 그러나 나는 무엇을 알고 있습니까?
FP는 기능 차원에서 모듈 식이며 ObjectOrientedProgramming은 다른 구성 요소 차원에서 모듈 식입니다.
케이크를 가지고 먹을 수있는 능력. 복잡한 OO 시스템 처리 메시지가 있다고 가정합니다. 모든 구성 요소가 메시지에 따라 상태를 변경 한 다음 메시지가 연결된 일부 객체로 전달할 수 있습니다. 호출 계층 구조의 일부 객체가 메시지에 결함이 있다고 판단한 경우 모든 변경 사항을 쉽게 롤백 할 수있는 것이 너무 멋지지 않습니까? 다른 국가의 역사를 갖는 것은 어떻습니까?
데이터 구조의 해체 (PatternMatching), 변수 바인딩 저장 (LexicalScope with Closure), 강력한 타이핑 (TypeInference), GarbageCollection, 스토리지 할당, 박스형 (포인터-값) 또는 박스형 (직접적인 값) 사용 여부 ) 표현 ...
안전한 멀티 스레딩! 불변 데이터 구조는 데이터 경쟁 조건의 영향을받지 않으므로 잠금으로 보호 할 필요가 없습니다. 기존 객체를 파괴적으로 조작하지 않고 항상 새 객체를 할당하는 경우 할당 및 GarbageCollection 시스템에서 잠금을 숨길 수 있습니다.
이 하스켈 외에도 다음과 같은 장점이 있습니다.
1 / 0
목록의 첫 번째 항목으로 넣을 수 있으며 두 번째 항목 만 사용한 경우에도 계속 작동합니다.다음 링크를 확인할 수 있습니다.
x = 5;
에서는 실행 후 x
값이 포함되도록 보장합니다 5
.
operator =
호출됩니다. 그리고 사용자를 정의하지 않으면 어떻게되는지 보장합니다operator =
이 글의 사람들은 기능적 프로그래밍 언어를 사용해 본 적이없는 사람에게 가장 중요한 점을 놓치고 있다고 생각합니다. 함수형 프로그래밍을 처음 사용하는 경우 Haskell은 이전에는 생각하지 못했던 방식으로 생각하게합니다. 결과적으로 다른 영역 및 다른 언어에서의 프로그래밍이 향상됩니다. 얼마예요? 정량하기 어렵다.
Haskell과 같은 범용 언어의 장점은 다음과 같습니다. 일반적인 프로그램 작성.
실제로 사용되는 것을 위해, 나는 그것을 확립하는 세 가지 접근법을 가지고 있습니다 :
그래픽, 네트워킹, 시스템 프로그래밍, 데이터 구조, 데이터베이스, 개발, 텍스트 처리에 적합 함을 나타냅니다.
그리고 마지막으로, 그것이 실제로 강점에 대한 나의 의견 :
귀하의 질문이 구체적으로 답변되어야하는 경우 귀하의 질문이 얼마나 광범위한 지에 대해 이해하기를 바랍니다.
에서 하스켈 위키 :
Haskell은 항공 우주 및 방위, 금융, 웹 스타트 업, 하드웨어 설계 회사 및 잔디 깎기 제조업체에 이르기까지 다양한 용도로 상업적으로 사용됩니다. 이 페이지는 Haskell의 산업 사용에 관한 자료를 수집합니다.
Wikipedia에 따르면 Haskell 언어는 기존 기능 언어를 기능 언어 설계에 대한 향후 연구에 사용될 수있는 공통 언어로 통합해야 할 필요성에서 만들어졌습니다.
이용 가능한 정보에 근거하여 그것이 원래의 목적으로 생겨 났으며 연구 이상의 용도로 사용되었습니다. 이제는 범용 기능 프로그래밍 언어로 간주됩니다.
그래도 "왜 사용해야합니까?"라고 스스로에게 묻는다면 왜 사용해야합니까?를 읽으 십시오. Haskell Wiki 소개 섹션.
하스켈은 범용 프로그래밍 언어입니다. 다른 언어를 사용하는 모든 작업에 사용할 수 있습니다. 당신은 당신 자신의 상상력에 의해 제한되지 않습니다. 그것이 적합한 것은 무엇입니까? 글쎄, 거의 모든 것. 기능적 언어가 뛰어나지 않은 작업은 거의 없습니다.
네, 저는 Dreamincode의 Rayne입니다. :)
또한 Wikipedia 페이지를 읽지 않은 경우 기능 프로그래밍은 객체 지향 프로그래밍이 패러다임과 같은 패러다임이라고 언급하고 싶습니다. 당신이 모르는 경우에 대비하여. Haskell은 또한 작동한다는 점에서 기능적입니다. 그것은 아주 잘 작동합니다.
언어가 객체 지향 언어가 아니기 때문에 언어가 어떤 것에 의해 제한되어 있다는 것을 의미하지는 않습니다. Haskell은 범용 프로그래밍 언어이며 Java와 마찬가지로 범용입니다.
멋진 페이스 북이 PHP 코드를 다시 작성하기위한 자동화 된 도구를 만들었습니다. 소스를 추상 구문 트리로 구문 분석하고 일부 변환을 수행합니다.
if ($f == false) -> if (false == $f)
나는 왜 그런지 모르겠지만, 그것은 그들의 특정한 스타일 인 것 같습니다.
https://github.com/facebook/lex-pass
우리는 작은 도메인 특정 언어를 만들기 위해 haskell을 사용합니다. 엄청난 양의 데이터 처리. 웹 개발. 웹 거미. 테스트 응용 프로그램. 시스템 관리 스크립트 작성 다른 당사자와 통신하는 백엔드 스크립트 모니터링 스크립트
실제로 모든 종류의 물건. 수학적으로 다소 기울어지면 매우 강력하고 유용한 기능을 갖춘 일상적인 범용 언어입니다.
false
왼쪽 에 글 을 쓰면 이점이 있지만 도구를 사용하여 자동으로 수행하는 요점은 보이지 않습니다. 이미 ==
운영자 가 있으면 그 부분에 버그가 없다는 것을 이미 알고 있습니다. lex-pass는 잡기위한 것이며, =
대신에 렉 패스가 있다면 의도적으로 그렇게 말할 수있는 방법이 없습니다.
다음은 Haskell 및 그 용도에 대한 정보를 제공하는 훌륭한 소스입니다.