2011-01-01 2 views
10

J'essaie de faire une différence de liste. Trouvé directement prélude opérateur \\\\ qui fait la différence de listes. Mais les erreurs Not in scope: '\\\\' se produit. Voici mon simple interpréteur en ligne de commande:Haskell liste les différences

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: "\\\\" 

Merci pour l'explication où je fais une erreur.

Répondre

29

C'est \\, pas \\\\. Et vous devez import Data.List.

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

Ou avec des modules hiérarchiques, 'import Data.List'. (Bien que dans GHCi, vous devez utiliser ': module + Data.List' à la place.) –

+2

wow! C'est une découverte pour moi que vous pouvez juste 'Prelude> importer Data.List' dans ghci. J'ai toujours utilisé ': m + Data.List' –

+4

@max taldykin, bien que non apparenté, vous pourriez aussi apprécier': set prompt ">>>" ', ou n'importe quelle chaîne que vous aimez. J'arrive au point où la liste des modules que j'ai importés occupe toute une ligne de ma console, ce qui n'est pas amusant. – luqui