|
|
1.1 ! root 1: procedure drv(exp,var) ! 2: local arg1, op, arg2 ! 3: if exp ? { ! 4: op := tab(upto('(')) & ! 5: move(1) & ! 6: arg1 := tab(bal(',')) & ! 7: move(1) & ! 8: arg2 := tab(bal(')')) ! 9: } ! 10: then return case op of { ! 11: "+": add(drv(arg1,var),drv(arg2,var)) ! 12: "-": sub(drv(arg1,var),drv(arg2,var)) ! 13: "*": add(mpy(arg1,drv(arg2,var)), ! 14: mpy(arg2,drv(arg1,var))) ! 15: "/": div(sub(mpy(arg2,drv(arg1,var)), ! 16: mpy(arg1,drv(arg2,var))),rse(arg2,"2")) ! 17: "^": mpy(mpy(arg2,rse(arg1,sub(arg2,"1"))), ! 18: drv(arg1,var)) ! 19: } ! 20: else return if exp == var then "1" else "0" ! 21: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.