2015-11-04 16 views
6

Sono nuovo di Haskell e sto cercando di eseguire il seguente codice di esempio dal mio libro:Haskell Errore: tipo variabile argomento non nel vincolo: Num (a -> A -> a -> a)

intero file:

-- my name 

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

sto testando eseguendo la linea:

splitAt1 [1 2 3 4] 

l'idea è che la matrice di ingresso è diviso in due array in corrispondenza dell'indice 2. Tuttavia, sto ottenendo il errore seguente:

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

Qualcuno può aiutarmi a decodificare il messaggio di errore e forse cosa c'è di sbagliato nel codice?

+1

È tutto questo il codice? Quale versione di GHC? Non riesco a riprodurlo qui: http://rextester.com/YLAV57098 –

+0

Sì, questo è tutto il codice. È la versione 7.10.2. – jblakeley

+1

Il codice funziona correttamente con 7.10.2. Puoi probabilmente incollare l'intero file? – Sibi

risposta

14

La funzione è soddisfacente, è il tuo argomento che non funziona.

Provare splitAt1 [1,2,3,4] anziché splitAt1 [1 2 3 4] e dovrebbe funzionare.

Problemi correlati