New version of makelist



I played with expunging the explicit call to $ev from makelist, but I
don't understand the ways of ev:

 (%i179) ev('('(x[i])), x[i] = 6);
 (%o179) 6

 (%i180) ev('('(x)), x = 6);
 (%o180) x

Actually, allowing the second argument of makelist (and similarly sum
and product) to be a subscripted variable is a troublemaker. The idea
of making makelist pretty much work as

    makelist(e,x,lo, hi) = map(lambda([x], e), [lo, lo+1, ..., hi])

fails when x is a subscripted variable (lambda([x[i]], x[i]^2) is
invalid). And a substitution for x[i] doesn't work because
substitute doesn't respect quotes: subst(a=b,'a) --> b.

I give up.

--Barton