- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到“monad”这个词的使用方式似乎有些不一致。我开始相信这是因为那里的许多(如果不是大多数)monad 教程是由刚刚开始自己弄清楚 monad 的人编写的(例如:核废料太空服卷饼),所以这个学期结束了变得有点重载/损坏。
特别是,我想知道术语“monad”是否可以应用于类型的单个值,如 Maybe、List 或 IO,或者术语“monad”是否真的应该只应用于类型本身。
这是一个微妙的区别,所以也许一个类比可能会更清楚。在数学中,我们有环、场、群等。这些术语适用于整个值集以及可以对它们执行的操作,而不是单个元素。例如,整数(连同加法、否定和乘法运算)形成一个环。你可以说“整数是一个环”,但你永远不会说“5 是一个环”。
那么,你能说“Just 5
是一个单子(monad)”,还是说“5 是一个环”是错误的?我不知道范畴论,但我的印象是说“Maybe
是一个单子(monad)”而不是“Just 5
是一个单子(monad)”才有意义。
最佳答案
“Monad”(和“Functor”)通常被误用作描述值。
没有值是 monad、functor、monoid、applicative functor 等。
只有类型和类型构造函数(更高级的类型)可以。
当你听到(你会听到)“列表是幺半群”或“函数是单子(monad)”等,或者“这个函数需要一个单子(monad)作为参数”时,不要相信它。
问演讲者“考虑到 Haskells 类对类型(包括高阶类)而不是值进行分类,任何值怎么可能是幺半群(或单子(monad)或……)?”
列表不是幺半群(等)。 List a
是。
我的猜测是,这种流行的误用源于具有值(value)类而不是类型类的主流语言,因此习惯性的、无意识的值(value)类思维潜入其中。
为什么我们是否准确地使用语言很重要?
因为我们用语言思考,我们通过语言建立和传达理解。
所以为了有清晰的想法,有清晰的语言是有帮助的(或者能够随时)。
“我们语言的邋遢让我们更容易产生愚蠢的想法。关键是这个过程是可逆的。” - 乔治奥威尔,政治与英语
编辑:这些评论适用于 Haskell,而不适用于更一般的范畴论设置。
关于terminology - 术语 "monad"是否适用于 Maybe 或 List 等类型的值,还是仅适用于类型本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11067343/
我在我的 Xcode 项目目录中输入了以下内容: keytool -genkey -v -keystore release.keystore -alias mykey -keyalg RSA \
假设我有一个像这样的 DataFrame(或 Series): Value 0 0.5 1 0.8 2 -0.2 3 None 4 None 5 None
我正在对一个 Pandas 系列进行相对繁重的应用。有什么方法可以返回一些打印反馈,说明每次调用函数时在函数内部进行打印还有多远? 最佳答案 您可以使用跟踪器包装您的函数。以下两个示例,一个基于完成的
我有一个 DataFrame,其中一列包含列表作为单元格内容,如下所示: import pandas as pd df = pd.DataFrame({ 'col_lists': [[1, 2
我想使用 Pandas df.apply 但仅限于某些行 作为一个例子,我想做这样的事情,但我的实际问题有点复杂: import pandas as pd import math z = pd.Dat
我有以下 Pandas 数据框 id dist ds 0 0 0 0 5 1 0 0 7 2 0 0
这发生在我尝试使用 Gradle 构建时。由于字符串是对象,因此似乎没有理由发生此错误: No signature of method: java.util.HashMap.getOrDefault(
您好,有人可以解释为什么在 remaining() 函数中的 Backbone 示例应用程序 ( http://backbonejs.org/examples/todos/index.html ) 中
我有两个域类:用户 class User { String username String password String email Date dateCreated
问题陈述: 一个 pandas dataframe 列系列,same_group 需要根据两个现有列 row 和 col 的值从 bool 值创建。如果两个值在字典 memberships 中具有相似
apporable 报告以下错误: error: unknown type name 'MKMapItem'; did you mean 'MKMapView'? MKMapItem* destina
我有一个带有地址列的大型 DataFrame: data addr 0 0.617964 IN,Krishnagiri,635115 1 0.635428 IN,Chennai
我有一个列表list,里面有这样的项目 ElementA: Number=1, Version=1 ElementB: Number=1, Version=2 ElementC: Number=1,
我正在编译我的源代码,它只是在没有运行应用程序的情况下终止。这是我得到的日志: Build/android-armeabi-debug/com.app4u.portaldorugby/PortalDo
我正在尝试根据另一个单元格的值更改单元格值(颜色“红色”或“绿色”)。我运行以下命令: df.loc[0, 'Colour'] = df.loc[0, 'Count'].apply(lambda x:
我想弄清楚如何使用 StateT结合两个 State基于对我的 Scalaz state monad examples 的评论的状态转换器回答。 看来我已经很接近了,但是在尝试申请 sequence
如果我已经为它绑定(bind)了集合,我该如何添加 RibbonLibrary 默认的快速访问项容器。当我从 UI 添加快速访问工具项时,它会抛出 Operation is not valid whi
在我学习期间Typoclassopedia我遇到了这个证明,但我不确定我的证明是否正确。问题是: One might imagine a variant of the interchange law
我是一名优秀的程序员,十分优秀!