18 lines
540 B
Text
18 lines
540 B
Text
--| Build a list by copying the given element the specified number of times
|
|
let replicate
|
|
: Natural → ∀(a : Type) → a → List a
|
|
= λ(n : Natural) →
|
|
λ(a : Type) →
|
|
λ(x : a) →
|
|
List/build
|
|
a
|
|
( λ(list : Type) →
|
|
λ(cons : a → list → list) →
|
|
Natural/fold n list (cons x)
|
|
)
|
|
|
|
let example0 = assert : replicate 9 Natural 1 ≡ [ 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
|
|
|
|
let example1 = assert : replicate 0 Natural 1 ≡ ([] : List Natural)
|
|
|
|
in replicate
|