기능적 언어로서의 자바 스크립트
함수형 프로그래밍 개념을 이해하려고합니다.
웹 애플리케이션에서 클라이언트 측 스크립팅을 위해 수년 동안 Javascript를 사용해 왔으며 프로토 타입을 사용하는 것 외에는 모두 간단한 DOM 조작, 입력 유효성 검사 등이었습니다.
최근에는 Javascript가 함수형 프로그래밍을 지원하는 언어 중 하나라는 것을 자주 읽었습니다 .
Javascript에 대한 친숙 함과 경험을 바탕으로 함수형 프로그래밍을 배우는 데 사용하는 것이 선호됩니다. 나는 주요 기능 개념에 더 집중할 수 있고 완전히 새로운 구문에 얽매이거나 산만 해지지 않을 것으로 기대합니다.
요약하면 Javascript가 함수형 프로그래밍 개념을 배우는 데 좋은 선택입니까? Javascript의 어떤 기능이 관련 / 지원 기능 프로그래밍입니까?
JavaScript는 일급 함수를 지원합니다. 함수형 프로그래밍 기술을 사용하여 우아한 JavaScript 작성을 참조 하십시오 .
고차 자바 스크립트 는 자바 스크립트 의 기능적 측면에 익숙해지는 좋은 방법입니다. 더 큰 책을 읽지 않고 발을 적시고 싶을 때도 비교적 짧은 읽기입니다.
JavaScript로 일부 함수형 프로그래밍 개념을 빠르게 파악할 수 있지만 JavaScript를 함수형 프로그래밍 언어처럼 일관되게 사용하는 것은 일반적인 관행이 아닙니다. 적어도 분명히 흔하지는 않습니다. 대부분의 사람들은 JavaScript로 함수형 프로그래밍을 수행하는 방법을 정확히 알려주는 튜토리얼을 게시하지 않습니다. marxidad가 지적한 것은 실제로 꽤 괜찮은 예이지만 많은 것을 찾지 못할 것입니다. 사람들이 JavaScript에서 클로저를 사용할 때와 같이 기능적인 측면은 종종 분명하지 않지만 그들이 그것을하고 있다는 것을 알지 못합니다.
두 함수를 인수로 세 번째 함수에 전달한 다음 반환 값을 처음 두 함수와 관련된 일부 실행으로 지정한다는 생각은 거의 항상 jQuery와 같은 본격적인 라이브러리의 핵심에만 나타나는 고급 기술입니다. . 자체 실행 익명 기능 등이 기반을 얻었지만 여전히 일관되게 사용되지 않습니다. 대부분의 자습서는 속성 및 메서드를 만드는 방법, 범위, 액세스 제어 및 생성자의 프로토 타입 속성을 사용하는 방법과 같은 JavaScript의 OO 기능에 초점을 맞추는 경우가 많습니다. 솔직히, 함수형 프로그래밍이 당신이 원하는 것이라면, 저는이 기능에 대해 엄격하게 알려진 언어를 선택할 것입니다.
누가 말했는지 기억이 나지 않지만 자바 스크립트는 "Algol 구문을 사용한 스키마"라고 불 렸습니다. 따라서 Scheme / Lisp 학습의 경우 Javascript는 나쁜 시작이 아닙니다. Lisp와 같은 기능적 언어는 Haskell과 같은 순수한 기능적 언어와는 상당히 다릅니다.
"일급 함수"(함수가 변수에 할당 될 수있는 값이라는 의미) 외에도 어휘 범위는 기능적 언어를 만드는 고유 한 부분이기도합니다.
Higher Order Javascript 와 The Little Javascripter 는 이미 언급되었습니다. 둘 다 훌륭한 텍스트입니다. 또한 Javascript의 Higher Order Programming 이 더 쉬운 시작일 수 있습니다.
자바 스크립트는 FP를 어느 정도 지원하지만 직접적으로 권장하지는 않습니다. 이것이 Oliver Steele의 Functional 과 같은 프로젝트 가 공백을 메우기 위해 존재하는 이유 입니다. 그래서 나는 FP를 배우는 데 권장하지 않습니다. 대신 F #을 확인하십시오.
재귀에 대한 상당히 얇은 책이며 기능적 스타일에 대한 좋은 소개 인 The Little Schemer를 읽는 것이 좋습니다 . Scheme에 초점을 맞추고 있지만 JavaScript에 쉽게 적용 할 수 있습니다 . http://javascript.crockford.com/little.html을 참조하십시오 . 나는 그것이 내 자바 스크립트 개발에 정말 도움이된다는 것을 알았습니다.
Javascript는 다중 패러다임 언어입니다. 기능적 언어 개념을 배우는 것이 목표라면 OCaml 또는 Haskell 과 같은 순수 기능적 언어로 시작해보십시오 .
또한 Eloquent JavaScript : Functional Programming chapter .
참고 URL : https://stackoverflow.com/questions/145053/javascript-as-a-functional-language
'IT TIP' 카테고리의 다른 글
SVG 텍스트 요소에 색상을 적용하는 방법 (0) | 2020.12.01 |
---|---|
Kafka : 소비자 API 대 Streams API (0) | 2020.12.01 |
.Net의 Int128? (0) | 2020.12.01 |
여러 TIMESTAMP 열이있는 하나의 Mysql 테이블 (0) | 2020.12.01 |
Google Play 게임 서비스-로그인 할 수 없음 (0) | 2020.12.01 |