Annotation of 43BSD/contrib/icon/book/19/drv.icn, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.