Помимо того, что xs подразумевается как множественное число x как @Ken Bloom, также важно отметить, как такие языки, как Scala структура List. List структурирован как связанный список, в котором контейнер имеет ссылку на первый элемент и на остальную часть списка.
::, когда он появляется при сопоставлении с образцом, также извлекает список в первый элемент и остальную часть списка следующим образом:
List(42, 69, 613) match {
case x :: xs => x
case Nil => 0
}
Поскольку этот шаблон появляется повсюду, читатели могут заключить, что xs подразумевает "остальную часть списка".
Ответ 4
Я видел это имя, используемое для переменных списка в учебниках по функциональному программированию, но не в строках (кроме случаев, когда строка считается списком символов).
В основном это фиктивное имя, используемое в примерах. Вы можете назвать скалярную переменную x, тогда как список будет xs, так как xs - это множественное число x. В производственном коде лучше иметь более описательное имя.
Вы также можете увидеть это в коде, который соответствует шаблонам. Например (в OCaml):
let rec len l =
match l with
| [] -> 0
| x :: xs -> 1 + len xs
Более описательная пара имен может быть first :: rest, но это всего лишь пример.