试图在Purescript中使用Cons函数

时间:2015-08-11 21:09:23

标签: purescript

继承我的代码:

print 1: [2,3]

当我运行它时,我得到了

  Cannot unify type
    Data.List.List
  with type
    Prim.Array

怎么回事?

2 个答案:

答案 0 :(得分:6)

[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]

答案 1 :(得分:5)

在psci中,查看(:)

的类型
> :t (:)
forall a. a -> Data.List.List a -> Data.List.List a

和[2,3]的类型

> :t [2, 3]
Prim.Array Prim.Int

你可以看到(:)函数需要2个值:一个值和一个相同类型的List。在你的问题中,你给它一个Ints数组。您可以使用Data.List.toList函数来获取(:)期望

的类型
> import Data.List
> show $ 1 : (toList [1, 2])
"Cons (1) (Cons (1) (Cons (2) (Nil)))"