PL

monad

  • 줄줄이타입
  • 이어달리기 타입
  • 계산잇기 구조 / 계산잇기 타입
  • 차례차례타입
댓글 17
SF
small fox·한 달 전
철학에서는 데카르트의 monad 개념을 단자로 번역하고 있습니다. 연산의 순차성을 강조한 현재 번역도 좋지만, monad라는 용어의 유래 자체가 프로그램의 최소 단위라는 의미를 담아 데카르트의 monad 개념을 따와서 명명한 것이므로 한국어 번역도 이를 따라 단자로 할 것을 제안합니다.
이광근/YiKwangkeun·한 달 전
쉬운 뜻전달이 우선이 되자는게 우리 입장입니다. “단자”는 뜻 전달이 않됩니다. 영어 전문용어의 단점을 우리는 번역에서 피할수있어요. 혹 단자라고 했을 때 장점이 뭘까요?
이광근/YiKwangkeun·한 달 전
"유래 자체"를 지켜주는게 우리 학술에 장점이 많다면 그렇게 하겠으나, 이 경우는 아닌듯 합니다. 영어 전문용어의 단점을 그대로 답습하는 번역은 피하는게 당영합니다. 그래야 두 언어(영어+모국어) 어휘의 장점을 모두 활용하는 학술이 되지않을까합니다. (비슷한 예로, "dynamic programming"이 있어요. "동적계획법"이라고 번역하는데, 영어용어 자체가 가진 문제를 그대로 번역으로 답습한 경우라고 봅니다. 대신에, "기억하며풀기"로 하면 쉽고 핵심전달이 되는 번역인데도요.)
이광근/YiKwangkeun·한 달 전
참고로 https://kwangkeunyi.snu.ac.kr/paper/position/easyword.pdf 읽어주시고 의견주세요.
이광근/YiKwangkeun·줄줄이타입·4달 전
차례차례 라는 느낌의 의태어들: 속속, 줄줄이
이광근/YiKwangkeun·이어달리기 타입·8달 전
잇기 에서 생각났네요. 이렇게 쉬운걸!
이"
이재호 "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·8달 전
예외 / IO / Null / 여러 개의 경우(리스트) 모두 본질적인 값에 특정한 맥락을 붙인다고 볼 수 있을 것 같습니다. 맥락 속에 있는 값을 꺼내서, 새로운 맥락을 만들어내는 연산을 순차적으로 적용할 수 있다는 점에서 순차적 맥락 타입을 제안합니다.
이광근/YiKwangkeun·8달 전
맥락을 만든다가 무슨 뜻일까요? 효과(effect)가 만들어지는 것을 뜻할까요? 어렵게 들리네요!
이"
이재호 "Zeta"·8달 전
계산하는 방식을 드러내는 타입입니다. (실패할 수 있는 계산법, 안 끝날 수 있는 계산법, 여러개 동시에 수행하는 계산법, 프로그램 상태를 바꿀 수 있는 계산법, 사용자 입력을 받을 수 있는 계산법, 프로그램 출력을 할 수 있는 계산법 등)
이광근/YiKwangkeun·8달 전
너무 일반적인 느낌입니다. 모나드는 뭐가 유난해서 따로 모나드일까요? 차례차례계산을 Haskell에서 편히 하고싶다, 는 목적때문에 고안된걸 모나드라는 이름으로 부른것 정도아니겠어요. 힘을 뺄 용어라고 봅니다. 어렵게 들려서 세상을 홀려요. 물론 쓰다보니 적극적인계산(eager eval, call by value)을하는 함수호출 느낌이니 뭐든 다 모나드로 할수있긴하겠죠.
이광근/YiKwangkeun·차례차례타입·8달 전
"모나드"라는 신비한 이름의 껍질/겁먹이기를 통쾌하게 벗기는 쉬운전문용어가 어떨까해요. 그래서 차례차례타입 제안합니다. 모나드타입은 순서대로 해야할 계산을 편하게 프로그램하도록 하는 타입종류입니다. 모나드타입의 데이타는 두 가지 함수(make, sequence)를 갖추도록 강제합니다. 그러면 그 데이타를 다루며 차례차례하는 계산을 편하게 프로그램할 수 있게됩니다. (아래 댓글에 썼듯이)
안중원·일 년 전
PL 분야에서는 모나드를 계산을 수행하면서 발생하는 부수효과를 표현하기 위해 사용합니다. 수학적 구조는 모나드라고 부르더라도 그 구조에서 착안한 타입은 계산효과 타입이라고 부를 수 있을 것 같습니다.
이광근/YiKwangkeun·8달 전
따져봅시다. 모나드 타입은 순서대로 해야할 계산(io/exception/memory rw등)을 프로그램할 때 쓰게됩니다. (과거에 "순수함수형언어"에서 그런걸 편하게 프로그램할 수 있게 제안된. 다르게 가능했지만요.) 모나드 타입 데이타는 두 가지 함수/연산자를 제공해야합니다: make: 'a -> t monad (* 만들기 *) sequence: t monad -> (t -> t monad) -> t monad (* 사용하기: 차례차례 계산하기 *) 그렇다면... "차례차례타입"을 제안해요.
이"
이재호 "Zeta"·8달 전
예외 처리 같은 연산은 오히려 순서대로 해야할 계산이라고 부르면 더 헷갈리지 않을까요?
이광근/YiKwangkeun·8달 전
예외를 만나는 차례에 다음차례는 뭐다라는 거지요. 그것도 차례에대한 이야기지요.
이"
이재호 "Zeta"·2년 전
모나드를 제안합니다.

검색창

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