问题
请帮助确认或纠正对Monad及其特性的理解。
As数据类型
据我理解,Monad是:
需要有一个返回或单元接口来创建T类型的Monad。
unit:= T -> M[T]

在Scala中,List()或Set()是返回接口的例子,任何Scala序列类型(数组、列表、地图、字符串)都是Monad,它们提供了flatMap接口,即绑定。
这些是对的吗?
As设计模式
软件工程提供了管理复杂性或构建软件的方法,如无goto的结构化编程、UNIX管道到流水线转换、面向对象封装数据和控制访问等。
Monad是一种设计模式,它提供了一种将计算构造为链的方法吗?
在其他系统中
UNIX命令
我认为UNIX命令--例如cat、grep --是可以链接的函数,但并不意味着它们是Monad,也不是Monad,因为它们没有返回/单元,也不是数据类型。还是仍然被认为是IO Monad,如在Monadic i/o与UNIX编程中
Python
我相信在Python中没有、bind、或Scala flatMap等效的东西。我可以说Python不具备Monad功能吗?
参考文献
发布于 2019-12-30 12:23:47
https://stackoverflow.com/questions/58788146
复制相似问题