小编use*_*037的帖子

为什么Haskell让我返回一个空列表,其中列表中的列表是预期的?

我是Haskell的新手,并且经历了99个问题的翻译.这是我对9号的解决方案:

pack :: (Eq a) => [a] -> [[a]]
pack (xs)
    | null xs = []
    | otherwise = 
        let (matched, unmatched) = span (== head xs) xs
        in [matched] ++ pack unmatched
Run Code Online (Sandbox Code Playgroud)

| null xs = []当类型签名表示函数返回a时,我不知道如何允许我这样做[[]].我已经看到同样问题的其他解决方案做同样的事情.

我的意思是,我不是在抱怨,但这是特别允许的吗?我有什么需要注意的注意事项吗?

我在默认的Windows 7 Haskell Platform 2013.2.0.0安装上使用GHCi,如果这有帮助的话.

haskell typechecking

5
推荐指数
3
解决办法
2439
查看次数

标签 统计

haskell ×1

typechecking ×1