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