algebrite
Version:
Computer Algebra System in Coffeescript
35 lines (28 loc) • 382 B
text/coffeescript
Eval_zero = ->
i = 0
k = []
m = 0
n = 0
for i in [0...MAXDIM]
k[i] = 0
m = 1
n = 0
p2 = cdr(p1)
while (iscons(p2))
push(car(p2))
Eval()
i = pop_integer()
if (i < 2)
push(zero)
return
m *= i
k[n++] = i
p2 = cdr(p2)
if (n == 0)
push(zero)
return
p1 = alloc_tensor(m)
p1.tensor.ndim = n
for i in [0...n]
p1.tensor.dim[i] = k[i]
push(p1)