2010-10-14 11 views

Odpowiedz

42

Zasadniczo jest to konwencja nazewnictwa powstała w LISP-ie. Uzasadnieniem jest:

  1. X jest częstą nazwą elementu zastępczego.
  2. XS jest wymawiany X'es, tj. "Wiele X".
+4

Konwencja jest faktycznie rozszerzona na wielowymiarowe struktury. Na przykład xss może być listą list, a xsss może być tablicą tablic tablic. – Adrian

+0

A dlaczego nie używać odpowiednich i znaczących nazw? – shinzou

29
+1

myślałem, że to xii;) –

+3

@Paul - nie, to działa tylko wtedy, gdy masz dokładnie 12 xs –

8

Widziałem tę nazwę używaną do zmiennych lista funkcjonalnych tutoriale programowania, ale nie smyczki (z wyjątkiem, gdy ciąg jest traktowana jako lista znaków).

Jest to po prostu fikcyjna nazwa używana w przykładach. Możesz nazwać zmienną skalarną x, a lista będzie xs, ponieważ xs jest liczbą mnogą z x. W kodzie produkcyjnym lepiej mieć bardziej opisową nazwę.

Możesz również zobaczyć to w kodzie, który wzór pasuje do list. Na przykład (w SML):

let rec len l = 
    match l with 
    | [] -> 0 
    | x :: xs -> 1 + len xs 

Bardziej opisowe parę nazwisk może być first :: rest, ale jest to tylko przykład.

+0

Mam tendencję do używania tej samej konwencji w produkcji, na przykład "zamówienie" i "zamówienia";) – bbozo

14

Pomijając fakt, że xs jest pomyślany jako liczba mnoga od x jako @Ken Bloom zwraca uwagę, to również zauważyć, jak istotne dla języków takich jak struktury Scala List. List ma strukturę listy połączonej, w której kontener ma odniesienie do pierwszego elementu i do reszty listy.

alt text

Operator :: (zwany cons) tworzy listę jak:

42 :: 69 :: 613 :: Nil 

:: jeśli znajdują się w dostosowaniu wzorca rozpakowuje listę do pierwszego punktu, a reszta na liście Jako to:

List(42, 69, 613) match { 
    case x :: xs => x 
    case Nil => 0 
} 

Ponieważ ten wzór pojawia się wszędzie, ponownie aders może wywnioskować, że xs oznacza "resztę listy".

+7

Ja mentalnie wymawiam "xs" jako "nadmiar", jak w "reszcie". – nibot

Powiązane problemy