2012-12-04 15 views
13

Eventuali duplicati:
What is the history of the variable names x and xs?Da dove viene il nome "xs" per la corrispondenza del modello?

Da dove viene il nome canonico "xs" in pattern matching viene?

ad es. in

reverse' []  = [] 
reverse' [x] = [x] 
reverse' (x:xs) = reverse' xs ++ [x] 

Si suppone che sia il plurale di "x"?

+1

Forse "convenzionale" piuttosto che "canonico". È un plurale, sì. –

+3

Sì, è il plurale. Introdotto da Phil Wadler, penso. – augustss

+0

Spesso vedrai anche (h: t), o occasionalmente la forma più lunga (testa: coda), anche se in quel modo è più comune, credo, in Erlang. – isturdy

risposta

20

Questo è il modo in cui ho sempre letto, si ha la singolare e al plurale, così x:xs o y:ys ecc

Essa in realtà non ha alcun significato di per sé, è solo una convenzione.

IIRC è anche menzionato in Learn You a Haskell.


cura

Il mio errore - in realtà è in Real World Haskell nel capitolo sui tipi e funzioni.

enter image description here

+0

Ti capita di sapere esattamente dove si trova "Learn you a Haskell"? –

+1

@FrankSchmitt, non sono sicuro che sia menzionato esplicitamente da qualche parte, ma è solo considerato la convenzione come ha detto Abizern. (x: xs) significa semplicemente che una singola x è collegata come la testa di una lista di xs (essenzialmente, una sorta di trasmissione del messaggio che è una lista contenente elementi x simili). Non sono sicuro se questa è una spiegazione abbastanza buona. – Ali

+0

@Abizern Grazie mille. –

Problemi correlati