私のコードは次のとおりです。
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]
psi で、(:) のタイプを見てください。
> :t (:)
forall a. a -> Data.List.List a -> Data.List.List a
[2, 3] の型
> :t [2, 3]
Prim.Array Prim.Int
(:) 関数が 2 つの値を想定していることがわかります。値と、同じ型のリストです。あなたの質問では、Int の配列を指定しました。Data.List.toList 関数を使用して、(:) が期待する型を取得できます。
> import Data.List
> show $ 1 : (toList [1, 2])
"Cons (1) (Cons (1) (Cons (2) (Nil)))"