14 lines
364 B
Text
14 lines
364 B
Text
import Lean
|
||
|
||
abbrev Sequence (α : Type) := List α
|
||
|
||
def bigop (init : β) (seq : Sequence α) (op : β → β → β) (f : α → Bool × β) : β := Id.run do
|
||
let mut result := init
|
||
for a in seq do
|
||
let (ok, b) := f a
|
||
if ok then
|
||
result := op result b
|
||
return result
|
||
|
||
set_option trace.Compiler.result true
|
||
#eval Lean.Compiler.compile #[``bigop]
|