2011-01-01 10 views
10

Sto provando a fare una differenza di liste. Trovato direttamente preludio operatore \\\\ che fa la differenza liste. Ma si verificano errori Not in scope: '\\\\'. Ecco il mio semplice da interprete di riga di comando:Haskell elenca la differenza

Prelude> ([1,2,3] ++ [5,6]) -- works like expected 
[1,2,3,4,5,6] 

prelude> ([1,2,3] \\\\ [1,2]) -- erros occurs 
<interactive>:1:11: Not in scope: "\\\\" 

Grazie per la spiegazione dove faccio un errore.

risposta

29

È \\, non \\\\. E hai bisogno di import Data.List.

Prelude List> import Data.List 
Prelude List> ([1,2,3] \\ [1,2]) 
[3] 
+1

Oppure con moduli gerarchici, 'importa DataList'. (Anche se in GHCi, è necessario utilizzare ': module + Data.List' invece.) –

+2

wow! È una scoperta per me che puoi semplicemente "Prelude> importare Data.List' in ghci. Ho sempre usato ': m + Data.List' –

+4

@max taldykin, anche se non correlato, potresti anche divertirti con': set prompt ">>>" ', o qualunque stringa tu voglia. Arriva al punto in cui l'elenco dei moduli che ho importato occupa un'intera linea della mia console, che non è divertente. – luqui

Problemi correlati