# 타입드 홀을 특징으로 하는 라이브 함수형 프로그래밍 환경 Hazel

> Clean Markdown view of GeekNews topic #17551. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17551](https://news.hada.io/topic?id=17551)
- GeekNews Markdown: [https://news.hada.io/topic/17551.md](https://news.hada.io/topic/17551.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-11-02T10:09:27+09:00
- Updated: 2024-11-02T10:09:27+09:00
- Original source: [hazel.org](https://hazel.org/)
- Points: 2
- Comments: 1

## Topic Body

### Hazel

- **Hazel**은 타입 홀이 있는 불완전한 프로그램을 타입 체크하고 조작하며 실행할 수 있는 라이브 함수형 프로그래밍 환경임
- 의미 없는 편집기 상태가 존재하지 않음

#### 동기

- 프로그래밍 시, 빈칸, 타입 오류, 병합 충돌 등으로 인해 형식적으로 완전하지 않은 프로그램 텍스트와 작업하는 시간이 많음
- 기존 프로그래밍 언어 정의는 이러한 구조에 공식적인 의미를 부여하지 않음
- 프로그램 편집기와 도구들은 복잡한 임시 방편에 의존해야 함
- Hazel은 불완전한 프로그램을 타입 이론에 기반하여 모델링함

#### Hazel의 특징

- Elm/ML과 유사한 함수형 프로그래밍 언어로 웹 기반 환경에서 구현됨
- 불완전한 프로그램도 정적 및 동적으로 잘 정의됨
- 연구 및 교육 플랫폼으로 활용 가능함

#### 뉴스 및 출판물

- **2025년 1월**: POPL 2025에서 조건부 승인된 Grove 논문
- **2024년 10월**: OOPSLA 2024에서 대형 언어 모델과 타입 홀을 결합한 연구 발표
- **2024년 10월**: HATRA 2024에서 Cyrus의 기조연설 예정
- **2024년 9월**: NSF에서 수업용 증명 보조 도구 개발을 위한 연구비 수여
- **2024년 1월**: POPL 2024에서 오류 지역화 및 복구에 관한 논문 발표
- **2023년 10월**: OOPSLA 2023에서 패턴 매칭에 관한 연구 발표
- **2023년 1월**: NSF CAREER 상 수상

#### 팀 Hazel

- Hazel은 미시간 대학교의 Future of Programming Lab에서 주도하는 오픈 소스 연구 프로젝트임
- 질문이나 기여에 관심이 있는 경우 팀 리더인 Cyrus Omar에게 연락 가능

### GN⁺의 정리

- Hazel은 불완전한 프로그램을 다루는 새로운 접근 방식을 제안하며, 프로그래밍 교육 및 연구에 유용한 플랫폼임
- 타입 이론을 기반으로 하여 불완전한 프로그램도 실행 가능하게 함으로써, 프로그래밍의 미래를 탐구하는 데 기여함
- 유사한 기능을 가진 프로젝트로는 Elm, ML, 그리고 다양한 프로그래밍 교육 도구들이 있음

## Comments



### Comment 30655

- Author: neo
- Created: 2024-11-02T10:09:27+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42004133) 
- Eclipse의 특징 중 하나는 불완전하거나 깨진 코드를 실행할 수 있는 기능이었음. 이는 Java의 Eclipse Compiler가 거의 모든 파일에 대해 바이트코드를 생성할 수 있었기 때문임. 이 기능은 매우 생산적인 환경을 제공했으며, 다른 대규모 시스템에서 구현되지 않아 아쉬움.

- Haskell은 타입 홀을 제공하며, 이를 완성하거나 케이스를 분할하는 코드 액션을 제공하는 플러그인이 있음. Agda도 타입 홀을 가지고 있으며, 더 강력한 기능을 제공함.

- Hazel에 대한 질문에 답변할 준비가 되어 있으며, 지난 4년간 Cyrus의 박사과정 학생으로 Hazel에서 작업해왔음. 현재 Hazel에서 라이브 프로그래밍을 위한 몰더블 프로젝셔널 인터페이스를 개발 중임.

  - Hazel에 추가한 기능 목록: [GitHub 링크](https://github.com/hazelgrove/hazel/pulls?q=is%3Apr+author%3Adisconcision)
  - 타입 홀과 Hazel 언어 서버를 사용하여 LLM 코드 완성을 위한 코드 컨텍스트 제공에 대해 발표한 영상: [YouTube 링크](https://www.youtube.com/watch?v=-DYe8Fi78sg&t=12707s)

- Hazel은 타입 홀이 특징인 라이브 함수형 프로그래밍 환경임. 관련 정보: [Hacker News 링크](https://news.ycombinator.com/item?id=24299852)

- Tylr는 타일 기반 편집의 데모로, 새로운 구조 편집 방식임. 관련 정보: [Hacker News 링크](https://news.ycombinator.com/item?id=27926758)

- Hazel의 코드 예제가 마음에 들며, 라이브 편집기와 오른쪽에 나타나는 문서화가 좋음. 하지만 라이브 편집기와 타입 체커 이상의 기능을 제공하는지, 실제로 프로그램을 작성할 수 있는지 궁금함.

- 에디터 UI가 아름답고 모바일에서도 잘 작동함. 매우 인상적임.

- "let" 바인딩이 "in"으로 끝나는 문법이 흥미로움. 예시:
  ```haskell
  let comparison =
   (0 == 0, 0 < 1, 1 <= 1, 2 > 1, 1 >= 1) 
  in
  ```
  "in" 키워드의 이유를 아는 사람?

- Idris에 대한 언급은 없었지만, 이 스타일의 개발을 처음 본 곳이 Idris였음. 관련 영상: [YouTube 링크](https://www.youtube.com/watch?v=mOtKD7ml0NU)

- Android 폰에서 플레이그라운드를 시도했지만, 키 입력이 소스 코드에 반영되지 않음. 커서를 탭하여 위치할 수 있고 가상 키보드가 나타나지만, 입력이 불가능함. 이는 버그인지 아니면 UX 문제인지 궁금함.

- Hazel을 항상 좋아했으며, 아마도 교육에 훌륭한 도구일 것임. Hazel로 무엇이 만들어졌는지 궁금함.
