feat(library/init/list): add list.any and list.all
This commit is contained in:
parent
deb2bb92b2
commit
e6acd52fc2
1 changed files with 14 additions and 0 deletions
|
|
@ -111,4 +111,18 @@ def dropn : ℕ → list A → list A
|
|||
| (succ n) [] := []
|
||||
| (succ n) (x::r) := dropn n r
|
||||
|
||||
definition foldl (f : A → B → A) : A → list B → A
|
||||
| a [] := a
|
||||
| a (b :: l) := foldl (f a b) l
|
||||
|
||||
definition foldr (f : A → B → B) : B → list A → B
|
||||
| b [] := b
|
||||
| b (a :: l) := f a (foldr b l)
|
||||
|
||||
definition any (l : list A) (p : A → bool) : bool :=
|
||||
foldr (λ a r, p a || r) ff l
|
||||
|
||||
definition all (l : list A) (p : A → bool) : bool :=
|
||||
foldr (λ a r, p a && r) tt l
|
||||
|
||||
end list
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue