|
From: | Juergen Sauermann |
Subject: | Re: [Bug-apl] Bug in the parser? |
Date: | Sun, 28 Dec 2014 19:43:44 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
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:
|
[Prev in Thread] | Current Thread | [Next in Thread] |