2015-11-04 7 views
6

Ich bin neu zu Haskell und ich versuche, den folgenden Beispielcode aus meinem Buch zu laufen:Haskell Fehler: Nicht Typ-Variable Argument in der Einschränkung: Num (a -> a -> a -> a)

gesamte Datei:

-- my name 

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

ich teste durch die Linie laufen:

splitAt1 [1 2 3 4] 

die Idee ist, dass das Eingabefeld 2 jedoch in zwei Reihen auf den Index aufgeteilt wird, erhalte ich die Folgefehler:

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

Könnte jemand mir helfen, die Fehlermeldung zu entschlüsseln und vielleicht, was ist mit dem Code falsch?

+1

Ist das der ganze Code? Welche Version von GHC? Kann nicht scheinen, es hier zu reproduzieren: http://rexttester.de/YLAV57098 –

+0

Ja, das ist der ganze Code. Es ist Version 7.10.2. – jblakeley

+1

Der Code funktioniert für mich mit 7.10.2. Kannst du wahrscheinlich deine gesamte Datei einfügen? – Sibi

Antwort

14

Die Funktion ist in Ordnung, es ist Ihr Argument, das aus ist.

Versuchen splitAt1 [1,2,3,4] anstelle von splitAt1 [1 2 3 4] und es sollte funktionieren.

Verwandte Themen