Ответ 1
Cons
не имеет особого значения в Rust. Это только имя, которое автору учебника понравилось назвать этим вариантом перечисления. Тот же List
может быть определен как:
enum List {
Pair(u32, Box<List>),
Nil
}
Имя Cons
происходит от LISP, который использует пары (узлы связанных списков) в качестве основных строительных блоков структур данных. Вот как можно создать список 1,2,3 в CommonLisp
(cons 1 (cons 2 (cons 3 nil)))
Cons
является сокращением construct
, с помощью которого программисты LISP означают выделение памяти. Программы, которые выделяют много памяти, считаются Cons
слишком большим.