developer tip

사용자가 사용 / 피해야하는 Haskell (GHC) 확장 프로그램은 무엇입니까?

optionbox 2020. 12. 2. 08:31
반응형

사용자가 사용 / 피해야하는 Haskell (GHC) 확장 프로그램은 무엇입니까?


나는 GHC가 확장을 사용하라고 말한 경험이 몇 번 있었지만, 그 확장을 사용할 때 간단한 리팩터링으로 Haskell 98을 고수 할 수 있었을 때 코드를 훨씬 더 복잡하게 만들었 음을 발견했습니다. 2010 )보다 간단한 솔루션을 제공합니다.

반면에 GADT 또는 Rank2Type (드물게 RankNTypes)이 훨씬 적은 작업과 훨씬 더 깔끔한 코드를 만드는 경우도 있습니다.

일반적으로 더 나은 디자인의 가능성을 모호하게 만드는 확장은 무엇이며 일반적으로 개선되는 것은 무엇입니까? 두 가지를 모두 수행하는 일부가있는 경우 해당 확장 프로그램을 사용하기 전에 사용자가 무엇을 찾아야합니까 (원하는 솔루션이 사실인지 아닌지 확인)?

(또한 GHC Haskell 확장 프로그램을 사용해야합니까? )


도덕적으로 "좋은"확장과 도덕적으로 "나쁜"확장의 임시 목록-이것은 미학적 판단입니다!

좋은

  • GADT
  • 병렬 목록 이해
  • 패턴 가드
  • 모나드 이해
  • 튜플 섹션
  • 와일드 카드 기록
  • 빈 데이터 decls
  • 기존 유형
  • 일반화 된 새로운 유형 파생
  • MPTC + FD
  • 유형 가족
  • 명시 적 정량화
  • 상위 다형성
  • 어휘 범위가 지정된 tyvar
  • 뱅 패턴

나쁜

  • SQL 이해
  • 암시 적 매개 변수

미운 (그러나 필요)

  • 템플릿 Haskell
  • Unboxed 유형 및 튜플
  • 결정 불가능하고 겹치며 일관성이없는 인스턴스는 일반적으로 잘못된 설계를 의미합니다.

확실하지 않다

  • 화살표 표기법
  • 패턴보기

참고 URL : https://stackoverflow.com/questions/10845179/which-haskell-ghc-extensions-should-users-use-avoid

반응형