12 lines
437 B
Text
12 lines
437 B
Text
def mkAssocArray : Nat → Array (Nat × Bool) → Array (Nat × Bool)
|
||
| 0 as := as
|
||
| (i+1) as := mkAssocArray i (as.push (i, i % 2 == 0))
|
||
|
||
def main (xs : List String) : IO Unit :=
|
||
do
|
||
let n := xs.head.toNat,
|
||
let as := mkAssocArray n Array.empty,
|
||
let as := as.qsort (λ a b, a.1 < b.1),
|
||
(2*n).mfor $ λ i, do
|
||
let entry := as.binSearch (i, false) (λ a b, a.1 < b.1),
|
||
IO.println (">> " ++ toString i ++ " ==> " ++ toString entry)
|