小编Pat*_* B.的帖子

创建 Haskell 'init' 函数的安全版本

我正在通过我的方式“真实世界哈斯克尔”,而任务是使安全版本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

4
推荐指数
1
解决办法
201
查看次数

标签 统计

haskell ×1