我正在通过我的方式“真实世界哈斯克尔”,而任务是使安全版本head, tail, last,和init. 我已经成功的前三,但Maybe类型类是杀死我的init。
这是我的代码:
-- safeInit
safeInit :: [a] -> Maybe [a]
safeInit [] = Nothing
safeInit (x:xs) = if null xs
then Just [x]
else x : (safeInit xs)
Run Code Online (Sandbox Code Playgroud)
这是加载到 GHCI 时产生的错误(该函数从原始文件的第 23 行开始:
[1 of 1] Compiling Main ( ch04.exercises.hs, interpreted )
> ch04.exercises.hs:27:26: error:
> • Couldn't match expected type ‘Maybe [a]’ with actual type ‘[a]’
> • In the expression: x : (safeInit xs)
> In …Run Code Online (Sandbox Code Playgroud) haskell ×1