【文件属性】:
文件名称:Monads:在C#中使用Monad进行实验
文件大小:932KB
文件格式:ZIP
更新时间:2021-05-19 05:27:07
C#
描述
我目前正在学习Haskell,并试图了解单子。 作为此学习过程的一部分,我开始使用C#来学习monad。
尽管这并不是最初的意图,但我想到我实现的内容实际上可以形成有用的monad库。
我已经实现了以下monads:
也许
任何一个
状态
读者
作家
我创建了自己的简单Unit类型来表示Haskell的()类型。
我还实现了一些常见的monad函数:
顺序和顺序_
ReplicateM和ReplicateM_
FoldM和FoldM_
MapM和MapM_
ZipWithM和ZipWithM_
形式
过滤器
通过LiftM5的LiftM
加入
什么时候
除非
永远
空白
美联社
撰写(单声道从左到右的Kleisli组成)
警卫
过滤器
MSum
NuGet
MonadLib可作为NuGet软件包提供:
演示程序
扩展演示程序
ReaderAllAboutM