37 lines
494 B
CoffeeScript
37 lines
494 B
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 < 1 || isNaN(i))
|
|
# if the input is nonsensical
|
|
# just return 0
|
|
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)
|
|
|