2015-11-04 8 views
6

私はHaskellを初めて使い、私の本から次のサンプルコードを実行しようとしています:Haskell Error:制約の非可変引数です。Num(a - > a - > a)

ファイル全体:

-- my name 

splitAt1 :: [a] -> ([a], [a]) 
splitAt1 xs = (take 2 xs, drop 2 xs) 

私はラインを実行してテストしています:

splitAt1 [1 2 3 4] 

アイデアは、入力配列はしかし、私は取得していますインデックス2にある2つの配列に分割されていることです次のエラー:

Non type-variable argument 
    in the constraint: Num (a -> a -> a -> a) 
(Use FlexibleContexts to permit this) 
When checking that ‘it’ has the inferred type 
    it :: forall a a1 a2 a3. 
     (Num a1, Num a2, Num a3, Num (a1 -> a2 -> a3 -> a)) => 
     ([a], [a]) 

エラーメッセージをデコードするのに役立ちますが、おそらくコードに間違いがありますか?

+1

これはすべてコードですか?どのバージョンのGHCですか?ここでそれを再現することができないようです:http://rextester.com/YLAV57098 –

+0

はい、それはすべてのコードです。バージョン7.10.2です。 – jblakeley

+1

コードは7.10.2でうまく動作します。おそらくファイル全体を貼り付けることはできますか? – Sibi

答えて

14

この機能は問題ありません。それはあなたの議論です。

splitAt1 [1 2 3 4]の代わりにsplitAt1 [1,2,3,4]を試してください。正常に動作するはずです。

関連する問題