|
From: | Juergen Sauermann |
Subject: | Re: [Bug-apl] jot dot jot dot? |
Date: | Mon, 27 Jun 2016 13:37:30 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
Hi, not sure. First of all, both IBM APL2 and GNU APL return the same result in Alex's example: 5 ∘.∘.+ 9 14 5 (∘.∘).+ 9 14 5 ∘.(∘.+) 9 14 Then the IBM language reference says this (p. 35): "For example, the function _expression_ +.×/ is a reduction by a +.× inner product because the × binds as right operand to the array product operator (.), and not as left operand to the slash operator (/). The + binds as left operand to the dot; then the resulting product binds to the slash as its left operand. +.×/ ←→ (+.× )/ not +.(× /) " However, the binding strength resolves the ambiguity in the IBM example only because / is not a dyadic operator. In Alex's example the operator is dyadic, and one could either bind the middle ∘ to the left ∘ or the + to the middle ∘ without violating the binding strengths. In this case I would argue that the "basic APL2 evaluation rule" should be applied because ∘.+ can be evaluated (yielding a derived function) because all arguments of . are available before the . and ∘ on the left show up. What is missing in both the ISO standard and in the APL2 language reference is a statement about left-to-right or right-to-left associativity of APL operators. I personally would find it counter-intuitive if functions are evaluated left-to-right while operators are evaluated right-to-left. /// Jürgen On 06/27/2016 11:48 AM, Jay Foad wrote:
|
[Prev in Thread] | Current Thread | [Next in Thread] |