|
)abbrev package TESTP TestPackage
|
|
Z ==> Integer
|
|
TestPackage : with
|
|
fib : Z -> Z
|
|
== add
|
|
fib x ==
|
|
x <= 0 => error "argument outside of range"
|
|
f : Reference((Z,Z,Z) -> Z) := ref((n, v1, v2) +-> 0)
|
|
f() := (n, v1, v2) +-> if n<2 then v2 else f()(n-1,v2,v1+v2)
|
|
f()(x,1,1)
|