2012-01-21 4 views

답변

11

은 내가 Hackage에서 찾을 수 quasiquoter 라이브러리의 모든 보간에서 살펴 보았다. 사용 가치가

보간 라이브러리 :

  • interpolatedstring-perl6는 : 적절한 구문을 사용하여 임의의 하스켈 코드를 보간 지원하지만 하스켈-SRC-EXTS이 필요합니다. 일반 문자열 보간 구문을 원한다면이 구문을 사용하십시오.

  • shakespeare-text : 셰익스피어 (Shakespeare) 템플릿 제품군에 기반하며 최소한의 의존성이 있습니다. 다른 보간 된 문자열 패키지의 대부분은 haskell-src-exts에 의존합니다. 이것은 꽤 무거운 패키지이며 컴파일하는데 많은 시간과 자원이 필요할 수 있습니다. 다른 셰익스피어 템플릿을 사용한다면이 템플릿을 사용하는 것이 좋습니다.

    그러나 간단한 변수 확장 이상을 지원하지만 임의의 하스켈 코드를 보간하는 것은 지원하지 않습니다. 그것도 함수 응용 프로그램, 연산자, 등등 나는 String보다는 Text을 사용한다고 생각합니다. 나는 소스 코드에서 찾고있는 String과 함께 사용할 수 있는지 여부를 확신 할 수는 없지만 제안 할 수있는 지원 코드가 있습니다.

  • Interpolation : 임의의 표현식 (다시 haskell-src-exts)을 지원하며 루핑 기능도 내장되어 있습니다. 단순한 보간법보다 더 많은 "템플릿"과 같은 기능을 원한다면 필자가 개인적으로 그 구문을 꽤 못생긴 것으로 생각할지라도 고려해 볼 가치가있다.

보간 라이브러리 아마 가치가 사용 :

  • interpolatedstring-qq : interpolatedstring - perl6 기반으로 할 것 같습니다; 1 년 넘게 업데이트되지 않았으며 interpolatedstring-perl6보다 기능이 적은 것으로 보입니다. #{expr} 구문에 실제로 첨부되어 있지 않으면이 구문을 고려하지 않을 것입니다.

  • interpol : 전처리기로 구현되어 문자열에 {foo}이라는 특수한 의미를 부여합니다. IMO는 너무 가볍고 기존의 코드를 깨뜨릴 수있는 가벼운 구문을 사용합니다. 당신이 (또는 이미 셰익스피어 템플릿을 사용) 할 경우 하스켈-SRC-EXTS 의존성, 그리고 셰익스피어 텍스트를 괜찮다면

은 요약하면, 나는 interpolatedstring-perl6 좋을 것.

또 다른 옵션은보다 일반적인 템플릿 엔진과 함께 string-qq 패키지를 사용하는 것일 수 있습니다. String, TextByteString을 지원하며 모든 용도를 포함해야합니다.그러나 이것은 분명히 Haskell 코드의 임베딩을 지원하지 않으므로 별도로 변수를 지정해야하므로 특정 상황에서만 유용 할 수 있습니다.

+2

셰익스피어 텍스트는 완전한 하스켈 표현 지원을 가지고 있지 않지만, 많은 것을 가지고 있습니다. 예를 들어 함수를 적용하고 연산자를 사용할 수 있습니다. –

+0

@MichaelSnoyman : 감사합니다; 곧 내 대답을 업데이트하겠습니다. 문서에서 알 수없는 한 가지 : 셰익스피어 텍스트 지원 조건부 및 루프입니까? – ehird