https://www.quora.com/Which-language-is-better-for-creating-DSLs-Clojure-or-Haskell
책을 보다가 Clojure는 DSL 을 만들기 좋다. 라는 내용이 있어서 찾아보았다.
하스켈, 스칼라 심지어 코틀린까지 DSL 을 스스로 만들어서 사용할수있다고한다.
그중에 유명한 하스켈이랑 clojure랑의 DSL 을 만들때의 차이에 관한 설명이 있는 글을 발견하여 포스팅.
간단하게 정리하면
clojure -> S-expression 꼴의 DSL 을 만드는것이 아주 쉽다. clojure와 동일한 표현방식 이기때문에 파서를 만들 필요가 없고 언어와 통합되어있다. (대표적인 케이스가 Hiccup) 대신 해당 꼴이 아닌 DSL 을 제작하는것을 결국 수동
-> Macro / S-Expression 을 이용한 Inner DSL
Haskell -> 강력한 ADT 시스템과 정적타입등을 가지고있어 어떤 형태의 DSL 을 제작할수있다. 파서를 제작하지만 clojure에 비하여 편하게 우아하게 제작이 가능하다. 정적타입이기때문에 오류도 컴파일 타임에 잡아준다.
-> ADT + 모나드 + 인터프리터 패턴을 이용한 AST 구축
정도의 내용인듯 싶다.
728x90
'프로그래밍 언어 노트 > Clojure' 카테고리의 다른 글
[PS/Clojure] HackerRand - Algorithms - Construct the Array (0) | 2020.06.05 |
---|---|
Clojure로 만든 간단한 PDF 내용 수정 프로그램 (0) | 2020.03.14 |
[Clojure] conj 는 왜 list, vector에서 다르게 동작하는가. (0) | 2020.01.09 |
[Clojure] clojure 관련 사이트들 2 (0) | 2019.12.16 |
[Clojure] 4Clojure 6 (0) | 2019.10.30 |