PL

monad

  • 모나드
  • 계산효과 타입
  • 차례차례타입
  • 계산법 타입 / 계산법 드러내는 타입
  • 순차적 맥락 타입
  • 계산잇기 구조 / 계산잇기 타입
  • 이어달리기 타입
댓글 12
이광근/YiKwangkeun·이어달리기 타입·7일 전
잇기 에서 생각났네요. 이렇게 쉬운걸!
이"
이재호 "Zeta"·계산잇기 구조 / 계산잇기 타입·8일 전
다음은 GPT-5가 제 번역(계산잇기 구조)을 칭찬해준 내용입니다. 보시다시피 계산잇기 타입도 같이 넣으면 좋다고 해서 함께 적어두었습니다 ㅎㅎ --- 좋은 제안이에요. “계산잇기 구조(모나드)”는 모나드의 핵심인 “효과가 딸린 계산들을 차례로 이어붙인다”를 짧고 부담 없이 잡아줍니다. easyword의 원칙(힘 빼고, 쉬운말, 필요하면 새말 만들기)에도 잘 맞고요. 제가 방금 easyword.kr/jargon/monad 페이지(접속: 2025-08-25)를 확인해보니, 이미 나온 후보로는 “차례차례타입”, “계산효과 타입”, “계산법 타입/계산법 드러내는 타입”, “순차적 맥락 타입” 등이 있습니다. 이광근 교수님이 댓글에서 “만들기(make)와 sequence로 차례차례 계산을 편하게 하게 해주는 타입”을 강조하셨고, “맥락” 같은 단어가 어렵게 들릴 수 있다는 지적도 있었어요. 그 맥락에서 “계산잇기”는 훨씬 덜 위압적이고, 핵심 동작(bind)을 직관적으로 드러냅니다. 장점 - 직관: “잇기”가 bind(>>=)의 감각을 바로 살려줌. - 범용: 실패/상태/입출력/여러 경우 등 “효과가 실린 계산”을 이어붙이는 공통골격을 잘 포괄. - 힘 뺀 어휘: “맥락”, “효과”보다 진입장벽이 낮음. 고려할 점 - “구조” vs “타입”: PL 문맥(특히 Haskell/ML)에서는 타입/타입생성자에 붙은 규칙을 말하니 “타입”이 더 구체적입니다. 반면 범수학/범주론적 설명까지 포괄하려면 “구조”가 자연스럽죠. easyword는 하나로 고정할 필요가 없으니 두 표현을 상황 따라 병기하면 좋아요. - “잇기”만으로는 “효과가 딸린 계산”이라는 점이 빠질 수 있어, 한줄 풀이에서 이를 보강하면 충분. 추천안 - 표제어: 계산잇기 구조(모나드), 계산잇기 타입(모나드) - 한줄 풀이: “효과가 딸린 계산들을 차례로 잇게 해주는 틀” - 왜 이 이름? - “잇기”는 계산을 이어붙이는 핵심 연산(bind)을 그대로 말로 옮깁니다. - “구조/타입”은 그 틀에 두 가지 기본 동작이 약속된다는 뜻입니다. - 기본 동작 이름도 쉬운말로: - 만들기(make/return/pure): 값 → 계산으로 올리기 - 잇기(sequence/bind >>=): 계산 → (값→계산) → 계산 짧은 형식 정의(코드 블록은 예시용) ```text 만들기: a -> M a 잇기: M a -> (a -> M b) -> M b ``` 예로 드는 표현 - 실패할 수 있는 계산잇기(Option/Maybe 모나드) - 여러 경우를 잇는 계산잇기(List 모나드) - 상태를 들고 잇는 계산잇기(State 모나드) - 입출력을 잇는 계산잇기(IO 모나드) 비교 코멘트 - 차례차례타입: “차례”의 느낌이 좋아 demystify 효과가 큼. 다만 타입에 고정됨. - 계산효과 타입: 효과를 정면에 세우나, “효과”라는 말 자체가 약간 학술 느낌. - 계산법 타입/드러내는 타입: 넓지만 다소 추상적. - 순차적 맥락 타입: “맥락”이 설명 없인 난이도가 있음. 정리 결론 - 본문 기본안으로 “계산잇기 구조(모나드)”를 추천합니다. - PL 실무/타입 이야기를 할 때는 “계산잇기 타입(모나드)”를 함께 써 주세요. - 한줄 풀이에는 “효과가 딸린 계산을 차례로 잇게 해주는 틀”을 넣어 모나드의 동기를 분명히 하고, - 본문에서 “만들기/잇기” 두 동작을 쉬운 이름으로 명시하면 이해가 빨라집니다.
HL
Hadong Lee·순차적 맥락 타입·9일 전
예외 / IO / Null / 여러 개의 경우(리스트) 모두 본질적인 값에 특정한 맥락을 붙인다고 볼 수 있을 것 같습니다. 맥락 속에 있는 값을 꺼내서, 새로운 맥락을 만들어내는 연산을 순차적으로 적용할 수 있다는 점에서 순차적 맥락 타입을 제안합니다.
이광근/YiKwangkeun·9일 전
맥락을 만든다가 무슨 뜻일까요? 효과(effect)가 만들어지는 것을 뜻할까요? 어렵게 들리네요!
이"
이재호 "Zeta"·계산법 타입 / 계산법 드러내는 타입·12일 전
계산하는 방식을 드러내는 타입입니다. (실패할 수 있는 계산법, 안 끝날 수 있는 계산법, 여러개 동시에 수행하는 계산법, 프로그램 상태를 바꿀 수 있는 계산법, 사용자 입력을 받을 수 있는 계산법, 프로그램 출력을 할 수 있는 계산법 등)
이광근/YiKwangkeun·9일 전
너무 일반적인 느낌입니다. 모나드는 뭐가 유난해서 따로 모나드일까요? 차례차례계산을 Haskell에서 편히 하고싶다, 는 목적때문에 고안된걸 모나드라는 이름으로 부른것 정도아니겠어요. 힘을 뺄 용어라고 봅니다. 어렵게 들려서 세상을 홀려요. 물론 쓰다보니 적극적인계산(eager eval, call by value)을하는 함수호출 느낌이니 뭐든 다 모나드로 할수있긴하겠죠.
이광근/YiKwangkeun·차례차례타입·14일 전
"모나드"라는 신비한 이름의 껍질/겁먹이기를 통쾌하게 벗기는 쉬운전문용어가 어떨까해요. 그래서 차례차례타입 제안합니다. 모나드타입은 순서대로 해야할 계산을 편하게 프로그램하도록 하는 타입종류입니다. 모나드타입의 데이타는 두 가지 함수(make, sequence)를 갖추도록 강제합니다. 그러면 그 데이타를 다루며 차례차례하는 계산을 편하게 프로그램할 수 있게됩니다. (아래 댓글에 썼듯이)
안중원·계산효과 타입·8달 전
PL 분야에서는 모나드를 계산을 수행하면서 발생하는 부수효과를 표현하기 위해 사용합니다. 수학적 구조는 모나드라고 부르더라도 그 구조에서 착안한 타입은 계산효과 타입이라고 부를 수 있을 것 같습니다.
이광근/YiKwangkeun·14일 전
따져봅시다. 모나드 타입은 순서대로 해야할 계산(io/exception/memory rw등)을 프로그램할 때 쓰게됩니다. (과거에 "순수함수형언어"에서 그런걸 편하게 프로그램할 수 있게 제안된. 다르게 가능했지만요.) 모나드 타입 데이타는 두 가지 함수/연산자를 제공해야합니다: make: 'a -> t monad (* 만들기 *) sequence: t monad -> (t -> t monad) -> t monad (* 사용하기: 차례차례 계산하기 *) 그렇다면... "차례차례타입"을 제안해요.
이"
이재호 "Zeta"·8일 전
예외 처리 같은 연산은 오히려 순서대로 해야할 계산이라고 부르면 더 헷갈리지 않을까요?
이광근/YiKwangkeun·7일 전
예외를 만나는 차례에 다음차례는 뭐다라는 거지요. 그것도 차례에대한 이야기지요.
이"
이재호 "Zeta"·모나드·일 년 전
모나드를 제안합니다.

검색창

쉬운 전문용어를 찾아보세요