From: SourceForge.net <noreply@so...>  20040128 18:34:22

Bugs item #886392, was opened at 20040128 13:34 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=886392&group_id=4933 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Stavros Macrakis (macrakis) Assigned to: Nobody/Anonymous (nobody) Summary: ('[a,b,c])[2] and ('v)[2] Initial Comment: arrayapply('[a,b],[2]) => b OK ('[a,b])[2] => Illegal form  SIMPLIFYA: ((((MLIST) $a $b)) 2) cf bug 866706: ('m)[1] => m(2), not v[2] What is going on here is that Maxima wants to treat ('f)(x) == funmake('f,[x]) == apply('('f),[x]) which I find a very poor convention, because it means that the (...)(...) construction is noncompositional. After all, ('f+0)(x) == apply('f,[x]) So, ... how do you explain this? Do you consider ('...)() == ('(...))() to be a special *syntactic* construction, even though the parser doesn't parse it into any sort of special internal form? Yuck, yuck, yuck. The fact that apply('('f),...) is specialcased is less problematic, but still weird, since apply('('f+0),...) does the same thing, though apply('(factor('fff)),[x]) gives an error. More yuck. Ayway it doesn't use funmake to construct the result, so screws up the error. I am not sure what the best fix is. I am tempted to completely eliminate ('f)(x) and apply('('f)...) as special cases. Then everything "just works". True, you need to use funmake to avoid evaluating, but that should be OK.  You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104933&aid=886392&group_id=4933 