这是我的代码:
print 1: [2,3]
当我运行它时,我得到
Cannot unify type
Data.List.List
with type
Prim.Array
这是怎么回事?
这是我的代码:
print 1: [2,3]
当我运行它时,我得到
Cannot unify type
Data.List.List
with type
Prim.Array
这是怎么回事?
[2, 3]
有类型Array Int
。(:)
有输入a -> List a -> List a
。Data.List
您需要转换为List
. 此外,您所拥有的将解析为
(print 1) : [2, 3]
我想你想要
print (1 : toList [2, 3])
或者
print $ 1 : toList [2, 3]
在 psci 中,查看 (:) 的类型
> :t (:)
forall a. a -> Data.List.List a -> Data.List.List a
和 [2, 3] 的类型
> :t [2, 3]
Prim.Array Prim.Int
您可以看到 (:) 函数需要 2 个值:一个值和一个相同类型的 List。在你的问题中,你给了它一个整数数组。您可以使用 Data.List.toList 函数来获取 (:) 期望的类型
> import Data.List
> show $ 1 : (toList [1, 2])
"Cons (1) (Cons (1) (Cons (2) (Nil)))"