Haskell — 게으름과 순수함이 클래스로 묶인 학술 언어
Entity (인물·조직)lectureverified2026-05-09

Haskell — 게으름과 순수함이 클래스로 묶인 학술 언어

#vch#lecture-intro#A-language#g6

1. 요약

Haskell은 1990년 4월 1일 1.0 보고서가 출판된 표준화된 순수 함수형 언어다. Paul Hudak·Philip Wadler·Simon Peyton Jones 등이 주도한 위원회 작업의 결과물이며, 이름은 논리학자 Haskell Curry에서 따왔다. "순수하고 게으르다(pure and lazy)" 가 핵심 정체성이다.

2. 배경 — 분산된 함수형 연구의 통합

1980년대 후반 함수형 언어는 ML·Miranda·Lazy ML·Lisp 변종 등으로 파편화되어 있었다. 연구자들은 공통 표준 이 필요하다고 느꼈다. 1987년 오리건 포틀랜드 회의에서 위원회가 결성되었고, 3년 작업 끝에 1990년 Haskell 1.0이 기록되었다.

Simon Peyton Jones는 후일 회고하길, "역사적으로 게으름이 가장 도움이 된 점은 그것이 우리를 순수해지도록 강제한 것" 이라고 했다. 게으른 평가에서는 부수효과가 위험해서 결국 순수 함수만 허용 하는 길로 갈 수밖에 없었다는 것이다.

3. 핵심 특징

  • Lazy evaluation — 값은 필요할 때 계산. 무한 자료구조도 표현 가능.
  • Pure functions — 부수효과 없음. 같은 입력은 항상 같은 출력.
  • Strong static typing + Type inference — Hindley-Milner 타입 시스템.
  • Algebraic Data Types + Pattern matchingdata Tree = Leaf | Node Tree Tree 같은 표현
  • Type classesad-hoc polymorphism 의 학술적 해법. 후일 Rust trait·Scala implicit의 원형.
  • Monads — 부수효과를 순수 하게 다루는 추상. IO·Maybe·List 모나드.

4. 주 용도

  • 1990~2000: 학술 연구·프로그래밍 언어 이론
  • 2000~2010: 컴파일러·DSL 구현 (Pugs Perl 6 인터프리터·GHC 자체)
  • 2010~현재: 금융(Standard Chartered·Barclays)·암호화폐(Cardano)·정형 검증·산업 도구(Pandoc·xmonad)

5. 시대 설계 도구 매핑

Haskell은 "타입 시스템이 곧 설계 명세" 라는 패러다임의 표준이다. 다른 언어가 UML·시퀀스 다이어그램으로 설계를 박을 때, Haskell은 타입 시그니처 자체로 설계 를 기록한다.

filter :: (a -> Bool) -> [a] -> [a]

이 한 줄이 함수의 의도·입력·출력 모두 를 기록한다. 학생이 코드를 짜기 전에 타입 시그니처부터 기록하는 Type-Driven Development 가 산업계로 흘러 들어가 TypeScript·Rust·Scala·Kotlin의 강한 타입 시스템에 영향을 줬다.

6. 강의 활용

Haskell은 강의의 핵심 명제 "설계 없이는 코딩이 안된다" 의 가장 극단적인 실현이다. Haskell에서는 타입을 박지 않으면 컴파일 자체가 거부 된다. 즉, 설계 없이는 코드도 없다.

이는 LLM 시대 Spec-driven Development 의 원리와 정확히 같다. 명세를 박으면 코드는 명세의 결과물이다. Haskell의 타입 시스템은 30년 전부터 이를 강제해 왔고, 이제 LLM 시대에 프롬프트 = 명세 = 설계도 로 같은 원리가 기록된다.

또한 Haskell의 Monad부수효과를 명시적으로 기록하는 설계 패턴이다. "부수효과는 코드에 숨기지 말고 타입에 박아라" — 이는 Vibe Coding 시대 AI 에이전트의 부수효과(파일 쓰기·DB 변경)를 명시적으로 박아라 는 원리와 직결된다. Haskell의 IO 모나드 = AI 시대의 도구 호출 명세서 다.

마지막으로 Haskell의 학술-산업 격차설계 도구가 너무 정형이면 산업이 따라오기 어렵다 는 교훈을 준다. Rust·Scala·TypeScript는 Haskell의 아이디어를 덜 순수하게 만들어 산업화에 성공했다. 설계는 정형이 좋지만, 너무 정형이면 비용이 크다 — 이 균형이 강의의 핵심이다.

출처

그룹 시리즈

synthesis/group-g6 (시대 그룹 종합 카드)