Cons运算符(:)将列表添加到空列表 - [x]:foo xs

时间:2016-02-20 14:56:44

标签: haskell

cons运算符用于向列表添加元素,因此1:2:[]等于[1,2]但是为什么以下代码可以正常工作;

foo :: [a] -> [[a]]
foo [] = []
foo (x:xs) = [x]:foo xs

这里我们将[x]添加到foo xs,它将评估为[],因此最终它将成为[x]:[],这在Haskell中是允许的。但[x]:[1,2,3]是不允许的,为什么会这样?

0 个答案:

没有答案