文件名称:salmon:普通Lisp的Monad
文件大小:8KB
文件格式:ZIP
更新时间:2024-04-22 15:05:21
CommonLisp
三文鱼 Common Lisp中monad的可扩展基础。 为什么Lisp需要Monads? Monad提供了一个统一的界面来控制各种不同计算的流程。 错误处理,缺失值,异步计算,解析等可以使用monad建模。 在此库的上下文中,单词monads的使用有些宽松,只需要候选monads即可实现fmap和flatmap 。 理解力 Salmon使用fmap和flatmap的实现来提供do语法,该语法类似于Haskell中的do理解和Scala中的理解。 在Haskell中,monad理解如下: do a <- [ 1 , 2 , 3 ] let c = 5 b <- [ 4 , 5 ] return (a + b + c) 在鲑鱼中表达相同的模式 (mdo (a '( 1 2 3 )) ( let (c 5 )) (b '( 4 5 ))
【文件预览】:
salmon-master
----.github()
--------workflows()
----salmon.asd(900B)
----src()
--------mlist.lisp(164B)
--------try.lisp(1KB)
--------mvector.lisp(436B)
--------maybe.lisp(866B)
--------monad.lisp(1KB)
----README.org(3KB)
----tests()
--------mvector-tests.lisp(581B)
--------try-tests.lisp(2KB)
--------mlist-tests.lisp(441B)
--------monad-tests.lisp(2KB)
--------maybe-tests.lisp(1KB)
----.gitignore(6B)