我刚发现Data.Sequence
,似乎没有head
或last
功能。
我知道你可以在viewL
上进行模式匹配,或者使用index 0
等...但是有这样的原因
基本功能没有实现(或者我没有实现)?
答案 0 :(得分:10)
使用Prelude.head
通常被认为是不好的做法:部分功能总是有危险的;像
if null list then
...
else
let foo = head list in ...
通常由初学者编写,但当然最好表达
case list of
[] -> ...
(foo:_) ->
因此,在许多非基本模块中,部分函数都被忽略了,就像在这种情况下一样。首选方式是模式匹配 - 正如您所说的viewL
。