#--- fib { i lset { %i exit } (%i 0 ==) (%i 1 ==) || if %i 1 - fib! %i 2 - fib! + } fib set #--- test 9 fib! . # > 34
# --- sqrt { n lset : base lset { 0 } %n 0 = if 1 v lset { %v %base * v lset } 1 %n i for %v } sqrt set # --- test 2 3 sqrt! . #--- 再帰を使う方法: #--- sqrt { v lset : n lset : base lset { %v : exit } %n 0 <= if %v %base * v lset n dec %base %n %v sqrt! } sqrt set #--- test 2 3 1 sqrt! .
{ # sum even from 1 to 100 # --- # (fromV) (toV) sum_even { toV lset : fromV lset 0 v lset { { %v %i + v lset } (%i 2 %) 0 == if } %fromV %toV i for %v } sum_even set # --- 1 100 sum_even! .