32 lines
595 B
Plaintext
32 lines
595 B
Plaintext
;; x? over a dyn: true when it is not nil. A dyn x stays a dyn in the block,
|
|
;; and e? as g binds a dyn that is present (decision 133).
|
|
|
|
fn describe(a, b)
|
|
if a?
|
|
a + 100
|
|
elif b? and b > 5
|
|
b + 200
|
|
else
|
|
0
|
|
|
|
fn run(a, n)
|
|
println(a?, n?)
|
|
println(describe(a, n), describe(n, 9), describe(n, 2))
|
|
let m = {:name "ann" :pet nil}
|
|
if m.pet? as pet
|
|
println(pet)
|
|
else
|
|
println("no pet")
|
|
if m.name? as who
|
|
println(who)
|
|
let xs = [1, 2, nil, 4]
|
|
let i = 0
|
|
let total = 0
|
|
while get(xs, i)? as x
|
|
total += x
|
|
i += 1
|
|
println(total, i)
|
|
|
|
fn main()
|
|
run(3, nil)
|