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은 매우 성숙하고, 매우 유용하며, 매우 기능적입니다. 일단 기본 언어에서 벗어나면 다른 기능 언어를 사용하는 것이 매우 도움이 될 것입니다. 학습을 후회하지 않을 것입니다.
- 1. Scheme 또는 Common Lisp
- 2. (Lisp 또는 Scheme에서) 유용한 순환 목록은 무엇입니까?
- 3. .NET/C에서 LISP 또는 SCHEME 호출하기 #
- 4. haskell 정렬
- 5. 다중 스레드 A * Java 또는 Lisp 또는 C#에서 검색
- 6. LISP : LISP 환경 작성, Ruby 해시
- 7. Haskell 응용 프로그램 내에서 Haskell REPL 만들기
- 8. Haskell & Oracle
- 9. haskell 리디렉션
- 10. Lisp 목록에 프로그램이 있습니다.
- 11. LISP 역 추적
- 12. Lisp 함수를 줄이는 방법
- 13. haskell 간단한 병합
- 14. Windows에서 Haskell 그래프 그리기
- 15. HTML의 Lisp 스타일 인용문
- 16. Lisp 역방향 "all"함수
- 17. lisp 이미지의 진화
- 18. 이맥스 LISP 질문
- 19. Windows Scheme/Lisp 구현
- 20. haskell-indentation-mode over haskell-indentation-mode haskell-mode 2.7에서 강제?
- 21. 클래스의 lisp 파일 포인터
- 22. lisp 함수 구체화
- 23. Common Lisp (SBCL) 해시 테이블 또는 대안 쓰기/읽기
- 24. 임시 파일 이름을 만들기위한 일반적인 Lisp 함수 또는 관용구?
- 25. Lisp (또는 AutoLisp)을 사용하면 연관 목록의 성능이 얼마나 좋은가요?
- 26. Python, Ruby, Haskell (또는 무엇이든)에서 반복 목록
- 27. 새로운 Haskell 프로젝트를 설치하기위한 Cabal?
- 28. Emacs-Lisp : emacs-lisp 프로그램을 PC 응용 프로그램으로 패키지하는 방법?
- 29. 주목할만한 Lisp 초보자를 위해 작동하는 Common Lisp 환경 설정하기
- 30. 이맥스 Lisp : 중첩이 ibuffer에서`max-lisp-eval-depth '를 초과했습니다
라틴어는 더 오래되었습니다. –
영어도 더 오래되었습니다. :) –
모든 것이 목록이므로 Lisp은 진정한 기능 언어가 아니므로 "함수"는 실제로 코드 블록이 아닌 객체입니다. – ApproachingDarknessFish