std: F5 해결(List.enumerate), F4·F8은 넣지 않는 것으로 닫음
F5 — "튜플이 없어서 enumerate가 불가능하다"고 적었는데 틀렸다. 제네릭 struct 하나면 된다. fold_indexed보다 이쪽이 낫다: enumerate 하나가 기존 each/map/filter/fold 전부와 조합되고, fold_indexed를 만들면 map_indexed, each_indexed가 따라와 "한 개념 한 방식"을 깬다. samples/app에서 Numbered struct가 사라졌다 (244줄 → 232줄). F2에 이어 두 번째로 관찰자가 틀린 사례다. 마찰 8건 중 2건이 "언어가 못 한다"고 적었다가 확인해 보니 되는 것이었다. F4 — 넣지 않는다. 전체 나열이 귀찮은 것은 맞지만 그 귀찮음이 값을 한다. 필드를 추가하면 모든 생성 지점이 컴파일 오류를 내고, 컴파일러가 전부 방문하도록 강제한다. ..base는 그것을 없앤다. "오류를 더 빨리 잡는다"가 1번 목표인데 F4는 정확히 그것을 깎는 거래다. F8 — 넣지 않는다. 진짜 질문은 "미사용 지역 변수를 잡을 것인가"가 아니라 "경고 등급을 만들 것인가"였다. 오류로 넣으면 성가시고, 경고로 넣으면 경고 등급의 첫 입주자가 된다. 경고가 없다는 것은 이 언어의 좋은 성질이고 죽은 지역 변수 하나 때문에 팔 것이 아니다. 둘 다 "보류"가 아니라 "닫음"으로 적는다. 근거를 적어두지 않으면 다음에 같은 논의를 처음부터 다시 한다. 다시 열 조건도 함께 적었다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019ZVDeU6KLuUVL3gs18Hm3E
This commit is contained in:
+6
-4
@@ -367,7 +367,7 @@ prelude는 없다. std도 명시적으로 가져온다 — 암묵적으로 끌
|
||||
결과를 버릴 방법이 언어에 없다는 성질도 여기서 처음 확인됐다.
|
||||
|
||||
■ 개밥 먹기 (2026-08)
|
||||
samples/app — 설정 파서 + 리포트 도구, 2모듈 292줄. 검사기를 시험하려고
|
||||
samples/app — 설정 파서 + 리포트 도구, 2모듈 232줄. 검사기를 시험하려고
|
||||
쓴 것이 아니라 일을 하려고 쓴 첫 프로그램이다.
|
||||
결과: 되돌리기 비싼 결정은 하나도 후회되지 않았고(capability 전달, effect
|
||||
명시, 실패를 버릴 수 없음, 소진적 match), 불편은 전부 되돌리기 싼 것들이었다
|
||||
@@ -375,9 +375,11 @@ samples/app — 설정 파서 + 리포트 도구, 2모듈 292줄. 검사기를
|
||||
항목 하나는 확인해 보니 관찰자가 틀린 것이었다 — 개밥 먹기의 불편은
|
||||
언어의 성질일 수도, 쓴 사람의 습관일 수도 있다.
|
||||
전문과 증거는 docs/friction.md. 이것이 v1 설계의 첫 입력이다.
|
||||
후속: std 보강(List.first/nth, String.join, Option/Result 함수)으로 292줄이
|
||||
244줄이 됐다. 문법은 건드리지 않았다 — 표본 하나로 되돌리기 비싼 축을
|
||||
움직일 수는 없다.
|
||||
후속: std 보강(List.first/nth/enumerate, String.join, Option/Result 함수)으로
|
||||
292줄이 232줄이 됐다. 문법은 하나도 건드리지 않았다 — 걸린 것이 전부 std의
|
||||
빈 곳이었지 문법의 문제가 아니었다는 뜻이고, 그것 자체가 결과다.
|
||||
마찰 8건 중 2건은 "언어가 못 한다"고 적었다가 확인해 보니 되는 것이었다
|
||||
(else if, enumerate). 개밥 먹기에는 확인 절차가 함께 있어야 한다.
|
||||
|
||||
■ 측정 (2026-08, v0 fast path)
|
||||
100,391줄 / 200 모듈 (사슬 의존). bench/bench.ml로 재현.
|
||||
|
||||
Reference in New Issue
Block a user