3
的类型检查我得到这个功能:自定义函数
foo [] = []
foo (x:xs) = foo us ++ foo ys
where us = filter (<=x) xs
ys = filter (>=x) xs
类型此函数的是一个奥德=>并[a] - >并[b]。
我不明白为什么输出类型是[b]而不是[a]。我认为它应该是[a],因为输出列表的元素将成为输入列表元素的一部分。
我正在使用拥抱,但我不认为它会改变任何东西。
如果编译器可能会警告有关比多态性少的类型签名,我会将其添加到可能被发现的错误类别列表中。 – jberryman
谢谢!实际上这只是一个练习,我需要弄清楚类型。我没有使用特定的功能。 – chechn