2010-10-14 9 views

Respuesta

42

Básicamente es una convención de nombres que se originó en LISP. El razonamiento detrás de esto es que:

  1. X es un nombre de marcador de posición común.
  2. XS se pronuncia X'es, es decir, "muchos X".
+4

La convención en realidad se extiende a estructuras multidimensionales. Por ejemplo, xss puede ser una lista de listas, y xsss puede ser una matriz de matrices de matrices. – Adrian

+0

¿Y por qué no usar nombres propios y significativos? – shinzou

29
+1

Pensé que era xii;) –

+3

@Paul - no, eso funciona solo cuando tienes exactamente 12 x –

8

que he visto este nombre usado para variables de lista de tutoriales de programación funcional, pero no strings (excepto cuando una cadena se considera una lista de caracteres).

Es básicamente un nombre ficticio utilizado en los ejemplos. Puede nombrar una variable escalar x, mientras que una lista sería xs, ya que xs es el plural de x. En el código de producción, es mejor tener un nombre más descriptivo.

También puede ver esto en el código que patrón coincide con las listas. Por ejemplo (en OCaml):

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

Un par más descriptivo de nombres podría ser first :: rest, pero esto es sólo un ejemplo.

+0

Tiendo a usar la misma convención en producción, por ejemplo "orden" y "pedidos";) – bbozo

14

Aparte del hecho de que xs está destinado a ser un plural de x como @Ken Bloom señala, también es importante observar cómo las lenguas como la estructura Scala List. List se estructura como una lista vinculada, en la que el contenedor tiene una referencia al primer elemento y al resto de la lista.

alt text

El :: operador (llamada cons) construye la lista como:

42 :: 69 :: 613 :: Nil 

El :: cuando aparecen en la coincidencia de patrones extrae también una lista en el primer artículo y el resto de la lista como sigue:

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

Dado que este patrón aparece en todas partes, Aders puede inferir que xs implica "el resto de la lista".

+7

Menciono mentalmente el "x" como "exceso", como en "el resto". – nibot

Cuestiones relacionadas