2014-04-07 22 views
5

Cercando di imparare un po 'Haskell e provato questo:Haskell - singolo v doppi apici

ghci> :t 'a' 
'a' :: Char 
ghci> :t "a" 
"a" :: [Char] 

Perché è vedere le virgolette singole e doppie in modo diverso e questo è importante?

risposta

13

Questo è proprio come C/C++/C#/Java e altri linguaggi di programmazione. Virgolette singole significa carattere singolo, virgolette doppie indica array di caratteri (stringa).

In Haskell, 'c' è un singolo carattere (Char), e "c" è un elenco di caratteri ([Char]).

È possibile confrontare questo per gli interi e gli elenchi di numeri interi:

ghci> let a = 1 
ghci> let b = [1,2,3] 
ghci> :t a 
a :: Integer 
ghci> :t b 
b :: [Integer] 

E 'importante perché ci deve essere una distinzione tra gli elementi singoli e un elenco di elementi. È possibile eseguire diverse operazioni su elementi semplici e diverse operazioni sugli elenchi.

+2

Forse qualcosa di importante da notare sarebbe ': info String' stampa' type String = [Char] ', così puoi vedere esplicitamente come viene definito il tipo' String'. – bheklilr

0

Sono interpretati in modo diverso perché lo sono (è proprio come viene definita la lingua). Questo è importante perché un Char e un [Char] non sono la stessa cosa. Oltre a questo non sono sicuro di cosa stai cercando di chiedere qui.

Problemi correlati