2012-12-04 12 views
13

Powiel możliwe:
What is the history of the variable names x and xs?Skąd pochodzi nazwa "xs" dla dopasowania wzorca?

Skąd nazwa kanoniczna "xs" w Pattern Matching pochodzi?

np. w

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

Czy ma to być liczba mnoga od "x"?

+1

Może 'konwencjonalnych' zamiast 'kanonicznych'. Jest to liczba mnoga, tak. –

+3

Tak, to liczba mnoga. Przedstawione przez Phila Wadlera, myślę. – augustss

+0

Będziesz także często widzieć (h: t), lub od czasu do czasu dłuższą formę (głowa: ogon), chociaż ta droga jest bardziej powszechna, jak sądzę, w Erlang. – isturdy

Odpowiedz

20

Tak to ja zawsze ją przeczytać, trzeba liczbie pojedynczej i liczby mnogiej, więc x:xs lub y:ys itp

To faktycznie nie mają żadnego znaczenia przy sobie, to tylko konwencja.

IIRC jest również wspomniany w Learn You a Haskell.


Edited

Mój błąd - to rzeczywiście w Real World Haskell w rozdziale na temat typów i funkcji.

enter image description here

+0

Czy wiesz, gdzie dokładnie w "Learn you a Haskell" to jest wymienione? –

+1

@FrankSchmitt, Nie jestem pewien, czy jest to gdziekolwiek wyraźnie wymienione, ale jest to uważane za konwencję, jak powiedział Abizern. (x: xs) oznacza, że ​​pojedynczy x jest dołączony jako nagłówek listy xs (zasadniczo, rodzaj przekazywania wiadomości, że jest to lista zawierająca podobne elementy x). Nie jestem pewien, czy to wystarczająco dobre wytłumaczenie. – Ali

+0

@Abizern Wielkie dzięki. –

Powiązane problemy