
바이브~ 하게 검증한 POC, WASM 으로 웹에서 실행도 할수있다.
대수적 효과가 무엇인가? 하믄
https://see-ro-e.tistory.com/350
[Algebraic Effect] 내 멋대로 대수적 효과 이해하기 feat Continuation
[Effect 가 싫어요]Functional Programming 에서는 효과(== 사이드 이펙트) 를 분리해서 Monad 로 순수하게 디자인하는 패턴이 아주 흔하다,Haskell 의 IO 모나드가 가장 대표적인 예시 인데, 이런 "모나딕" 한
see-ro-e.tistory.com
이거 되시겟다.
개발하다 보면 비슷한 패턴이 계속 나온다.
로깅을 위해 함수를 감싼다.
테스트를 위해 mock 을 끼운다.
DI 로 구현체를 바꾼다.
Middleware 로 요청 전후를 가로챈다.
AOP 로 특정 호출을 가로챈다.
근데 생각해보면 전부 “호출 사이에 무언가를 끼워 넣는 일” 이다.
그리고 이걸 효과적으로 해결한게 대수적 효과이고, 이걸 주류로 편입시킨 랭기지들이 Eff, Unison 등이 있고, Kotlin 에서도 컨텍스트 리시버로 이걸 해결하려고 열심히 언어 디자인중
golang 이나 js,ts 에서는 "도메인 주도 설계를 위한 함수형 프로그래밍" 역자이신 박주형님께서 만든 유명한 라이브러리도 있다.
암튼 곰곰히 생각해보다가
그냥 모든 함수 호출 자체를 effect 로 보면, 이걸 전부 하나의 handler 모델로 통합할 수 있지 않을까? 라는 생각에
ACE 를 디자인해보았다.
수학적으로 엄밀한 Algebraic Effects 구현체를 만들려는 건 아니고, “함수 호출을 전부 effect 로 보면 어떤 프로그래밍 모델이 나오는가?” 를 보기 위한 실험이다.
지금은 “이런 mental model 이 가능한가?” 를 보기 위한 실험에 가깝다.
그래도 아이디어 자체는 꽤 재미있었다.
함수 호출, DI, Mocking, Middleware, AOP, Interceptor 를 전부 하나의 effect handler 모델로 묶을 수 있다면 꽤 독특한 프로그래밍 모델이 될 수 있다.
https://github.com/Lee-WonJun/ACE
GitHub - Lee-WonJun/ACE: ACE (Algebraic Call Effects) is a proof-of-concept language where function calls are treated as algebra
ACE (Algebraic Call Effects) is a proof-of-concept language where function calls are treated as algebraic effects. - Lee-WonJun/ACE
github.com
'프로그래밍 기록 > 토이' 카테고리의 다른 글
| 사내 유행어로 프로그래밍 언어를 만들어보자 Feat F# Bolero WASM (0) | 2025.10.21 |
|---|---|
| 대한 축구 협회 프로그래밍 랭기지를 만들어보자 되도록 튜링완전하게.. (2) | 2024.09.28 |
| 주술회전 대사로 프로그래밍을 해보자 (2) | 2024.02.12 |
| 트랙볼을 활용한 가난한자의 레이싱휠 제작 (0) | 2023.09.19 |
| [CodePaper] 코드들을 하나의 md 문서에 모으기 (0) | 2023.04.25 |