Hi Tobia, I have fixed the special case {(2|⍵) / ⍵} ⍳3 that you reported, SVN 519. There remains a handful of border cases related to / ⌿ \ and ⍀ caused by the ambiguity of these symbols because, for example, function / parses differently than operator /. In order to avoid lengthy and complicated run-time lookaheads of the left argument of / and friends, GNU APL tries to resolve this ambiguity at ⎕FX time. This works well except if the left argument is a user-defined symbol, say U. In that case the rule in GNU APL is that (U) is assumed to be a value while U alone is assumed to be a function. Then U/ takes / as an operator (and U/ a derived function), while (U)/ takes / as a function and (U) i.e. U its left argument. Neither the ISO standard nor the APL2 manual provide enough information to cleanly resolve these border cases. I have tried the "/ is always operator" approach earlier but it was breaking quite a few GNU APL testcases so I decided not to follow it. /// Jürgen On 12/28/2014 05:12 PM, Tobia Conforto
wrote:
|
- [Bug-apl] Bug in the parser? Elias Mårtenson
- Re: [Bug-apl] Bug in the parser? Juergen Sauermann
- Re: [Bug-apl] Bug in the parser? Jay Foad
- Re: [Bug-apl] Bug in the parser? Jay Foad
- Re: [Bug-apl] Bug in the parser? Juergen Sauermann
- Re: [Bug-apl] Bug in the parser? Juergen Sauermann
- Re: [Bug-apl] Bug in the parse... Elias Mårtenson
- Re: [Bug-apl] Bug in the p... Juergen Sauermann
- Re: [Bug-apl] Bug in the parse... Jay Foad
- Re: [Bug-apl] Bug in the p... Tobia Conforto
- Re: [Bug-apl] Bug in the p... Juergen Sauermann
- Re: [Bug-apl] Bug in the p... Tobia Conforto
- Re: [Bug-apl] Bug in the p... Juergen Sauermann