LISP 또는 Haskell, 나는 함수형 프로그래밍을 배울 필요가있다. 그러나 나는 Lisp가 매우 오래된 것으로 들었다.LISP 또는 Haskell
답변
하스켈. 하스켈을 배웠다면, 당신은 그것을 좋아할 것이기 때문입니다. 그리고 Common LISP를 배울 수 있습니다. 그러나 편집자가 Emacs라면 Lisp으로 시작하십시오.
하스켈과 커먼 리스프 사이에는 공통점이 없습니다. 한 쪽에서는 매개 변수가 있습니다. 매개 변수가 있기 때문에 할 수있는 일이 크게 제한됩니다. 대신 "프리 그룹"이나 "무료 맥주"처럼 "무료"라고하는 무료 자유 법칙을 얻습니다. 다른면에서 원하는 것은 무엇이든 할 수있는 자유를 누릴 수 있지만, 자동화 된 방식으로 처음부터 자신이하는 일을하는 것이 합리적인지 여부를 확인할 수있는 것을 포기합니다. – pyon
왜 둘 다 있지 않습니까? LISP는 배우기 쉽기 때문에 (Scheme 방언으로 가겠다. (http://racket-lang.org 참조) 그렇게 시작하겠다. 당신이 그것을 좋아한다면, 그것으로 붙어 라. 그러나 나는 또한 당신의 머리를 감싸는 것이 상당히 어렵다. (내 경험상) 하스켈에게도 줄 것이다.
요즘 컴퓨팅에 대한 좋은 점은 시간 외에도 무료로 모든 언어를 사용해 볼 수 있다는 것입니다. 프로그래밍을 시작했을 때 LISP는 메인 프레임에서만 사용할 수있었습니다. 메인 프레임에서 배우기에 약간의 주름을 잡았습니다.
연령에 따라 선택하는 것은 어리석은 일입니다. 하스켈은 C#을 말하는 것보다 훨씬 오래되었으며, 그 역사는 훨씬 더 깊어졌습니다. 어쨌든 나는 둘 다 결국 함수 프로그래밍을 배우기 위해서 두 가지를 모두 배우도록 권하고 싶다. 하스켈은 특히 순수한 함수 프로그래밍에 관한 것이다. Scheme은 기능 지향적 인 리스프의 후손입니다.
언어의 컴파일러 또는 인터프리터를 구현하여 기능적 프로그래밍을 배우려면 Lisp 또는 ML이 게으른 언어보다 구현하기가 훨씬 쉽기 때문에 더 나은 첫 번째 선택이되어야합니다. 그렇지 않으면 두 가지를 모두 배우는 것이 좋습니다.
그냥 다른 사람을 에코하기 위해 나는 Scheme (더 기능적인 Lisp 방언)과 Haskell을 배웠다. Scheme/Lisp에는 'code is data/data is code'및 매크로에 관해 가르쳐주는 유용한 유용한 트릭이 있습니다. Scheme은 훌륭한 기능적 스타일을 권장하며이 책을 시작하기 위해 'The Little Schemer'시리즈의 책을 추천합니다. SICP는 환상적인 텍스트 http://mitpress.mit.edu/sicp/full-text/book/book.html이며 아마도 프로그래밍에 관한 최고의 책 중 하나 일 수 있습니다. Scheme은 첫 번째 기능 언어로보다 쉽게 액세스 할 수 있습니다.
Scheme을 사용하면 라이브러리가 부족하고 병렬성이 부족하며 우수하지만 커뮤니티가 부족하다는 사실에 좌절감을 느낄 것입니다. 이것은 내가 하스켈을 배우기로 결정했을 때 있었던 곳입니다. Haskell은 매우 성숙하고, 매우 유용하며, 매우 기능적입니다. 일단 기본 언어에서 벗어나면 다른 기능 언어를 사용하는 것이 매우 도움이 될 것입니다. 학습을 후회하지 않을 것입니다.
라틴어는 더 오래되었습니다. –
영어도 더 오래되었습니다. :) –
모든 것이 목록이므로 Lisp은 진정한 기능 언어가 아니므로 "함수"는 실제로 코드 블록이 아닌 객체입니다. – ApproachingDarknessFish