PureScript

PureScript
PureScript
PureScript Logo.png
패러다임기능하다
설계자필 프리먼
처음 등장한2013
안정된 릴리스
2022년 6월 30일 / 0.15.4, 38일 전(2022-06-30)
타이핑 분야추정, 정적, 강력
면허증.BSD[1]
파일 이름 확장자.disclosed(비활성화)
웹 사이트www.purescript.org Edit this at Wikidata
영향을 받다
Haskell, JavaScript

PureScriptJavaScript로 컴파일되는 강력한 타입의 순수 기능 프로그래밍 언어입니다.Electron을 사용하여 웹 응용 프로그램, 서버 측 응용 프로그램 및 데스크톱 응용 프로그램을 개발하는 데 사용할 수 있습니다.그 구문은 대부분 해스켈의 구문과 비슷하다.또한 행 다형성확장 가능한 레코드[2]도입합니다.또한 Haskell과 달리 PureScript는 엄격한 평가 전략을 고수합니다.

역사

PureScript는 필 프리먼이 2013년에 처음 디자인했습니다.Haskell을 JavaScript로 컴파일하려는 다른 시도(예: Fay, Jush, GHCJS [3]사용)에 만족하지 못했기 때문에 PureScript를 사용하기 시작했습니다.

이후 커뮤니티에 의해 채택되어 GitHub에서 개발되고 있습니다.커뮤니티에 의해 개발된 기타 핵심 툴로는 전용 빌드 툴 "Pulp",[4] 문서 디렉토리 "Pursuit",[5] 패키지 매니저 "Spago"[6] 등이 있습니다.

특징들

PureScript는 엄격한 평가, 지속적인 데이터 구조유형 추론을 특징으로 합니다.PureScript 유형 시스템은 Haskell과 같은 유사한 기능 언어와 많은 특징을 공유합니다: 대수적 데이터 유형 및 패턴 매칭, 상위 종류 유형, 유형 클래스와 함수 종속성, 상위 등급 다형성.PureScript의 유형 시스템은 행 다형성 및 확장 가능한 [7]레코드를 지원합니다.그러나 PureScript는 GADT나 타입 패밀리와 같은 Haskell의 고급 기능을 지원하지 않습니다.

PureScript 컴파일러는 가능한 경우 읽을 수 있는 JavaScript 코드를 생성하려고 합니다.간단한 FFI 인터페이스를 통해 기존 JavaScript [8]코드를 재사용할 수도 있습니다.

PureScript는 증분 컴파일을 지원하며 컴파일러 배포는 반복 [9]개발을 위한 소스 코드 편집기 플러그인 구축을 지원합니다.편집기 플러그인은 Vim, Emacs, Sublime Text, AtomVisual Studio Code를 포함한 많은 인기 텍스트 편집기를 위해 존재합니다.

PureScript는 누락된 하위 [10]표현식으로 프로그램을 구성할 수 있는 유형 홀 기능을 통해 유형 중심 개발을 지원합니다.이후 컴파일러는 누락된 서브 표현의 유형을 추론하여 사용자에게 보고합니다.이 기능을 통해 GHC Haskell [11]컴파일러에서도 유사한 작업을 수행할 수 있게 되었습니다.

다음은 PureScript의 최소 "Hello world" 프로그램입니다.

모듈 주된 어디에  수입품 Effect. 콘솔 (로그.)  주된 = 로그. '헬로 월드' 

여기서 프로그램의 유형은 PureScript 컴파일러에 의해 추론되고 체크됩니다.같은 프로그램의 보다 상세한 버전에는 명시적인 유형 주석이 포함될 수 있습니다.

모듈 주된 어디에  수입품 서곡  수입품 영향 (영향) 수입품 Effect. 콘솔 (로그.)  주된 :: 영향 구성 단위 주된 = 로그. '헬로 월드' 

「 」를 참조해 주세요.

레퍼런스

  1. ^ "purescript/purescript". GitHub. 3 June 2022.
  2. ^ "PureScript". www.purescript.org. Retrieved 2019-03-14.
  3. ^ "Read PureScript by Example Leanpub". leanpub.com. Retrieved 2019-03-14.
  4. ^ A build tool for PureScript projects, PureScript Contrib, 2019-03-08, retrieved 2019-03-14
  5. ^ "Pursuit". pursuit.purescript.org. Retrieved 2019-03-14.
  6. ^ 🍝 PureScript package manager and build tool powered by Dhall and package-sets: spacchetti/spago, spacchetti, 2019-03-14, retrieved 2019-03-14
  7. ^ Documentation for the PureScript language, compiler, and tools.: purescript/documentation, PureScript, 2019-03-14, retrieved 2019-03-14
  8. ^ Documentation for the PureScript language, compiler, and tools.: purescript/documentation, PureScript, 2019-03-14, retrieved 2019-03-14
  9. ^ purs ide: Editor and tooling support for the PureScript programming language, 2019-04-21, retrieved 2019-04-21
  10. ^ Implementing type directed search for PureScript, 2016-10-27
  11. ^ Matthías Páll Gissurarson (2018-09-27), "Suggesting Valid Hole Fits for Typed-Holes (Experience Report)", ACM SIGPLAN Notices, 53 (7): 179–185, doi:10.1145/3299711.3242760, S2CID 218480974

외부 링크