像这样的可选类型的直觉Maybe Int
是:要么没有 Int(因此Nothing
存在),要么有一些 Int。那里有东西。
对我来说,我们将类型构造器称为“负数”情况是有意义的Nothing
,因为这恰好意味着-那里没有Int
。但是,为什么在重点在于实际存在的东西的情况下使用“ 只是 ”一词呢?
对我来说,“ Just”一词的含义是它所描述的事物少于替代事物。与实际存在的事物相反 例如,
你今晚有事吗?
B:没有;我只是待在家里看电视。
答:您是否调查过房屋周围令人毛骨悚然的鬼声?
B:是的,事实证明它实际上只是一只猫头鹰。
显然,我缺乏这种命名选择所基于的直觉。它是什么?因为对我来说,Just字样与它在Maybe
类型中的用法相反。
4
在这种情况下,我认为Scala与“ 无”(而不是Scala的发明)相对应,使用了Some的更好的名字。
—
安德列斯·F
@AndresF。至少可以追溯到Odersky确实非常熟悉的ML。
—
德里克·埃尔金斯
@RobertHarvey如果Haskeller
—
德里克·埃尔金斯
Maybe
用作单子,他们可能会使用return
,mzero
而不是Nothing
。当Just
直接使用,通常Maybe
不被在一元的风格在这一点上使用。
历史的先例就是这种
—
德里克·埃尔金斯
Option
类型。Haskell的设计师可能觉得foo x = Just x
“阅读”比更好foo x = Some x
。同样,该定义data Maybe a = Just a | Nothing
读起来很好,因为“ Maybe a
is is Just a
or it's Nothing
”。Some
在那里读得不错,但None
不适合data Option a = Some a | None
。
他们还活着。您可以向Phil Wadler和Simon Peyton Jones之类的人发送电子邮件,然后询问他们。或者尝试使用Haskell-Cafe邮件列表。
—
德里克·埃尔金斯