From: SourceForge.net <no...@so...> - 2004-01-28 18:34:22
|
Bugs item #886392, was opened at 2004-01-28 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 non-compositional. 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 special-cased 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 |