32 lines
529 B
Markdown
32 lines
529 B
Markdown
# Lists
|
|
|
|
Lists are a standard Ava type. Specifically, `List[A]` represents a linked list.
|
|
|
|
```
|
|
let x: List[Int32] := { 1, 2, 3 }
|
|
let y := prepend(x, 0)
|
|
let z := append(x, { 4, 5 })
|
|
let w: Option[Int32] := head(x)
|
|
let tail: List[Int32] := tail(x)
|
|
let sz: List[Int32] := size(x)
|
|
```
|
|
|
|
## Type Class Support
|
|
|
|
- `Monad`
|
|
- `Monoid`
|
|
- `Show`
|
|
- `Eq`
|
|
|
|
## NonEmptyList
|
|
|
|
The type `NonEmptyList` is a list which cannot be empty:
|
|
|
|
```
|
|
given A
|
|
record NonEmptyList: (head: A, tail: List[A])
|
|
```
|
|
|
|
## Indexing
|
|
|
|
Lists cannot be accessed by index.
|