문제

내가 Haskell을 배우면서 언어 확장 실제 생활 코드에 사용됩니다. 초보자로서, 나는 그것들을 사용하는 법을 배워야합니까, 아니면 모든 비용으로 피해야합니까? 나는 그것이 Haskell 98과의 호환성을 깨뜨리고 코드를 거의 GHC로만 제한한다는 것을 알 수 있습니다. 그러나 Hackage에서 패키지를 탐색하면 대부분의 사람들은 GHC 전용이라는 것을 알 수 있습니다.

그렇다면 언어 확장을 사용하는 것에 대한 공동체의 태도는 무엇입니까?

그리고 확장을 사용하는 경우, "안전하게"사용할 수있는 확장을 어떻게 구별 할 수 있습니까? 예를 들어, 나는 그것을 생각합니다 -XDISAMBIGUATERECORDFIELDS 훌륭하고 유용하지만 앞으로 지원 될 가능성이 있습니까?

도움이 되었습니까?

해결책

없이 살기에는 너무 좋은 GHC 확장이 있습니다. 내가 가장 좋아하는 것 중에는

  • 다가구계 유형 클래스
  • 스코프 형 유형 변수
  • 더 높은 순위 유형
  • 일반화 된 대수 데이터 유형 (GADTS)

이 중 정말로 필수적인 것은 다가가계 유형 클래스입니다.

일부 GHC 확장은 매우 투기적이고 실험적이며주의해서 사용할 수 있습니다. 안정적이고 신뢰할 수있는 확장을 식별하는 좋은 방법은 그것이 포함 될 예정인지 확인하는 것입니다. Haskell Prime, 후계자 인 Haskell 98이되기를 희망합니다.

두 번째 Don Stewart의 제안은 모든 연장이 다음을 사용하여 표시되어야한다는 제안 LANGUAGE 소스 파일의 Pragma. 하지 않다 명령 줄 옵션을 사용하여 확장자를 활성화합니다.

다른 팁

예, 연장을 적절하게 사용하십시오.

그러나 그들을 활성화하십시오 의도적으로 - 당신이 그들을 필요로 할 때만. 이를 통해 모듈 별로이 작업을 수행하십시오 {-# LANGUAGE Rank2Types #-} (예를 들어).

일반적으로 말하는 사람들은 GHC 확장을 매우 많이 사용합니다. 왜냐하면 그들은 매우 유용하고 Haskell 98은 상당히 오래 되었기 때문입니다. 최신의 표준 사람들이 더 많은 사람들이이를 고수하기 위해 더 많은 노력을 기울일 수 있습니다.

다음 표준에 대한 제안 상태를 찾을 수 있습니다. 여기.

여기서 다른 답변은 좋은 답변입니다. GHC가 가장 인기있는 Haskell 컴파일러 인 것처럼 보이기 때문에 GHC 확장은 미래의 비판적이지 않다고 덧붙일 것입니다.

(*) "미래 방지"와 반대되는 것처럼

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top