19 lines
540 B
Text
19 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
|