2012-12-04 7 views
13

Mögliche Duplizieren:
What is the history of the variable names x and xs?Woher kommt der Name "xs" für die Mustererkennung?

Woher kommt der kanonischen Namen "xs" in Pattern-Matching kommen aus?

z.B. in

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

Soll es der Plural von "x" sein?

+1

Vielleicht 'konventionelle' und nicht 'kanonischen'. Es ist ein Plural, ja. –

+3

Ja, es ist der Plural. Eingeführt von Phil Wadler, denke ich. – augustss

+0

Sie sehen auch oft (h: t), oder gelegentlich die längere Form (Kopf: Schwanz), obwohl dieser Weg in Erlang häufiger ist, denke ich. – isturdy

Antwort

20

Das ist so, wie ich es immer gelesen habe, haben Sie den Singular und Plural, also x:xs oder y:ys usw.

Es spielt eigentlich keine Bedeutung für sich allein hat, es ist nur eine Konvention.

IIRC ist auch in Learn You a Haskell erwähnt.


Edited

Mein Fehler - es ist eigentlich in Real World Haskell im Kapitel über die Typen und Funktionen.

enter image description here

+0

Wissen Sie wo genau in "Lernen Sie ein Haskell" erwähnt wird? –

+1

@FrankSchmitt, Ich bin mir nicht sicher, ob es explizit erwähnt wird, aber es ist nur die Konvention, wie Abizern sagte. (x: xs) bedeutet nur, dass ein einzelnes x als Kopf einer Liste von xs angehängt ist (im Wesentlichen eine Art der Übermittlung der Nachricht, dass es sich um eine Liste mit ähnlichen x Elementen handelt). Nicht sicher, ob das eine Erklärung genug ist. – Ali

+0

@Abizern Vielen Dank. –