Вот мой код:
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])
or
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 значения: значение и список того же типа. В своем вопросе вы дали ему массив целых чисел. Вы можете использовать функцию Data.List.toList, чтобы получить тип, который (:) ожидает
> import Data.List
> show $ 1 : (toList [1, 2])
"Cons (1) (Cons (1) (Cons (2) (Nil)))"