【发布时间】:2019-05-29 15:25:39
【问题描述】:
在 Haskell 或 fp 语言中,我们可能有 monad (Option, Some, None)。名称可能会有所不同。
假设我有函数返回列表的第一个元素,如果为空则返回 None。
headm [] = None()
headm (x:xs) = Some(x)
所以现在我有一个函数可以从地图和键中获取所有值:
keyValues ['name','age'] {age:24} // [None, Some(24)]
我知道地图的语法不正确,但代码仅用于演示目的。
所以如果我在空列表上调用 headm,我会得到 None。
如果我调用上面结果的 headm,我也会得到 None。
我的问题很令人困惑,因为我得到了空列表的相同结果,如果列表头没有。
这是一种好习惯吗?我应该检查列表是否为空?
【问题讨论】:
-
谢谢,我编辑了标题希望现在更好