Если e
является выражением типа 'a
, то [e]
имеет тип 'a list
и соответствует альтернативной записи для e :: []
.
Это синтактическое c sugar также работает для списков, содержащих несколько элементов, а именно:
[a; b]
является альтернативной нотацией для a :: b :: []
.
Кроме того, обратите внимание, что эта нотация также может использоваться при обработке образцов , например, функция last
, возвращающая последний элемент списка, может быть написана так:
let rec last l =
match l with
| [] -> failwith "last"
| [x] -> x
| _ :: l -> last l