github.com/fsprojects/FSharpPlus
fsprojects.github.io/FSharpPlus//computation-expressions.html
어느 함수형 언어와 마찬가지로 F# 에서도 모오오오나드를 위한 문법이 있는데 (Clojure는 기본으로 없는건 비밀)
암튼 F# 에서는 Computations Expressions 이라고 표현한다.
그런데 이게좀 애매...한게
하스켈의 do-notation / 스칼라의 for - notation 과 다르게
Builder 로 Expressions 을 뚝딱 뚝딱 만들어줘야 한다.
예를 들어서 Async 모나드의 Computations Expressions 은 async { let! 블라블라 }
Seq 모나드용은 seq { 블라블라 } 가 있고 없으면 Builder 로 직접 만들어야되며,
하스켈/스칼라처럼 범용 모나드 notation 이 없다 (High Kind Type 이 없어서 그런가 싶음)
근데 Optional 모나드는 기본 Computations Expressions이 없음 ㅡㅡ..
서론이 좀 길었는데,
Fsharp Plus 라이브러리의 경우 이러한 범용 monad Computations Expressions을 제공해준다
무려 이름도 monad 다.
물론 monad 하나만을 위한 라이브러리를 아니므로
Lens나 다양한 함수도 제공해준다.
728x90
'프로그래밍 언어 노트 > F#' 카테고리의 다른 글
[F#/Fabulous] fabulous version 2 로 안드로이드 앱 만드는 기나긴 여정 (1) | 2022.10.08 |
---|---|
[C#/F#] C# 초기화 코드 제너레이터 (0) | 2021.03.06 |
[F#/C#] Native Dll Load 하기 (0) | 2020.11.03 |
[F#/C#] 닷넷 프레임워크 F#프로젝트 C#에서 참조하기 (0) | 2020.08.05 |
[F#] C# to F#, troubleshooting (0) | 2020.06.04 |