하스켈 커뮤니티의 소식과 글을 모은 하스켈 위클리 490호: 특집 글, 릴리스, 팟캐스트, 프로젝트 소개, 참여 안내 등.
하스켈 위클리의 또 다른 호에 오신 것을 환영합니다! Haskell은 빠르고 동시성이 뛰어난 런타임을 갖춘 안전한 순수 함수형 프로그래밍 언어입니다. 이 소식지는 커뮤니티에서 일어나는 일을 주간으로 요약해 드립니다.
이 글은 프로그램 합성—예시로부터 작은 프로그램을 생성하는 기술—에 관한 실습형 연재의 시작입니다. “Joshua Nkomo” 같은 문자열을 입출력 쌍으로부터 “J. Nkomo”로 바꾸는 방법을 학습하는, FlashFill 스타일의 작은 합성기를 만들어 봅니다. 아주 작은 문자열 조작 언어를 정의하고, 인터프리터를 작성하며, 주어진 장난감 문제를 해결하는 프로그램을 찾을 때까지 프로그램 공간을 탐색하는 과정을 살펴봅니다.
들판을 거니는 Number를 본 적이 있나요? 나무에서 지저귀는 Functor는요? 없다구요? 그건 전부 거짓말입니다. 민중을 억누르려는 부르주아가 퍼뜨린 거짓말. 하지만 나는 NO, 더 이상 기만에 억눌리지 않겠다고 말합니다! 형제자매들이여, 와서 가치의 체계를 함께 만듭시다. 값들이 더 이상 자신의 타입 클래스에 의해 제한되지 않고, 대신 시그니처로서 모듈에 병합되는 그런 체계를요. 동지들이여, Backpack을 엽시다.
우리는 하스켈 커뮤니티, 함수형 프로그래밍, 그리고 프로그래밍 언어 분야에서 가장 큰 영향력을 지닌 인물 중 한 명인 Phil Wadler와 마주 앉았습니다. 그는 타입 클래스, 모나드 등을 포함한 수많은 업적을 남겼습니다. 하스켈의 탄생부터 시작해 추억의 길을 함께 걸었습니다. 연구와 더불어 산업계에서 큰 영향을 미친 프로젝트와 표준(특히 XML과 Java의 제네릭 설계)에 Phil이 참여한 경험, 그리고 에든버러 대학교에서 Agda를 사용해 가르친 이야기까지 나눴습니다. Phil은 훌륭한 아이디어와 이야기의 샘물 같은 사람이고, 이 대화는 몇 시간이고 계속될 수 있었을 겁니다. 이 한 시간을 우리만큼 즐기시길 바랍니다.
GHC 개발자들은 GHC 9.10.3 최종 릴리스를 제공하게 되어 매우 기쁩니다.
GHC 개발자들은 GHC 9.14.1의 두 번째 알파 사전 릴리스를 제공하게 되어 매우 기쁩니다.
Liquid Haskell(LH)은 하스켈 프로그램을 위한 형식 검증 도구로, 종종 대대적인 리팩터링 비용을 치러 코드 자체를 올바르게 만들려는(이전 글에서 주장했듯) 의존형 접근법보다 훨씬 적은 마찰로 정합성을 증명할 가능성을 갖고 있습니다. LH는 채택을 촉진하기 위해 사용자 경험 개선과 명세 검증 최적화 같은 삶의 질 기능들을 추가하며 사용성 면에서 큰 진전을 이루었습니다. Tweag와 함께한 2025년 GSoC Haskell.org 프로젝트 동안, 저는 작아 보이지만 영향력 있는 기능 하나에 집중했습니다. 바로 LH의 타입 및 프레디킷 별칭을 한정자(qualified) 형태로도 쓸 수 있게 하는 것입니다. 즉, 기존 하스켈 타입 별칭에서 하듯이 Nat만 쓸 수 있었던 것을 Foo.Nat처럼 쓸 수 있게 하는 것이죠. 이 글에서는 이러한 주석과 그 활용법을 소개하고, 몇 가지 설계 결정들을 짚어 보며, 구현에 어떻게 접근했는지 공유합니다.
우리는 하스켈의 과거, 현재, 그리고 가능한 미래에 대해 이야기합니다. 또한 하스켈을 독특하게 만드는 설계 선택들—예를 들어 상위 kind 타입 변수 같은 것들—과 그것들이 다른 언어에서는 왜 구현이 어려울 수 있는지도 논의합니다. 마지막으로, SPJ가 프로그래밍 언어 연구를 사랑하는 이유에 대해 이야기합니다.
하스켈 재단은 첫 번째 AmeriHac, 즉 이틀짜리 하스켈 해커톤의 개최를 자랑스럽게 알립니다. 이번에는 뉴욕시에서 열립니다! Jane Street가 친절하게도 하스켈 재단의 첫 북미 하스켈 행사를 호스팅해 주기로 했습니다. 행사는 2026년 2월 7일과 8일, Jane Street 뉴욕 사옥에서 진행됩니다. 주최 측 Jane Street의 후원 덕분에 등록은 무료입니다.
이 글은 저 자신(그리고 바라건대 다른 분들)도 하스켈을 배우는 데 도움을 주기 위한 연재의 일부입니다. Karpathy의 훌륭한 micrograd 라이브러리에서 영감을 받아, 최소한의 신경망 라이브러리를 함께 만들어 봅시다.
Rust 대 Haskell 비교 시리즈에 다시 오신 것을 환영합니다. 이 시리즈에서는 가장 흔한 LeetCode 문제들을 다룹니다. 지난 두 주 동안은 DFS와 BFS를 포함한 그래프 문제들을 풀었습니다. 오늘은 조금 더 복잡한 알고리즘이 필요한 그래프 문제를 다룹니다. 또한 아직 이 시리즈에서 다뤄 보지 않은 몇 가지 자료구조를 사용하고, 하스켈 알고리즘에서 여러 가변 자료구조를 함께 다루는 일이 얼마나 까다로울 수 있는지도 살펴봅니다.
Agda Implementors’ Meeting XLI는 프랑스 앙제(Angers)에서 2025년 11월 24일(월)부터 29일(토)까지 열립니다]