bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] dynamic function not referencing global?


From: Juergen Sauermann
Subject: Re: [Bug-apl] dynamic function not referencing global?
Date: Wed, 26 Oct 2016 12:54:14 +0200
User-agent: Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

Hi,

correct. To explain why this is so, consider this:

      {1+2}
3

      {1+⍵}
SYNTAX ERROR


      {1+⍵} 5
6

Therefore in


      F0←{1+2}

GNU APL first reduces
{1+2} to 3 and then assigns 3 to F0, making F0 a variable
because a values is being assigned to a name. This is normal APL and holds for
all niladic functions and not only for niladic lambdas.

In contrast, in

      F1←
{1+⍵}

{1+⍵} cannot be reduced (as opposed to {1+⍵} 5 which can), so it is shifted onto
the evaluation stack, then is shifted (still not being able to be reduced), and finally
 F1 is shifted. At this
point the stack contains the valid phrase
F1←{1+⍵}, which can
be reduced and causes F1 to become a monadic function bound to the name F1.

/// Jürgen


On 10/25/2016 07:01 PM, Christian Robert wrote:
DISPLAYhand←{,(⍪hand),' '}

this create a variable DISPLAYhand

this is because de {} does not contain neither alpha nor omega.

Xtian.


On 2016-10-25 12:54, address@hidden wrote:
Hi bug-apl,

Why does DISPLAYhand not use the new value of hand on the second call?


      deck←''
      deck←deck,"🂢" "🂲" "🃂" "🃒"
      deck←deck,"🂣" "🂳" "🃃" "🃓"
      deck←deck,"🂤" "🂴" "🃄" "🃔"
      deck←deck,"🂥" "🂵" "🃅" "🃕"
      deck←deck,"🂦" "🂶" "🃆" "🃖"
      deck←deck,"🂧" "🂷" "🃇" "🃗"
      deck←deck,"🂨" "🂸" "🃈" "🃘"
      deck←deck,"🂩" "🂹" "🃉" "🃙"
      deck←deck,"🂪" "🂺" "🃊" "🃚"
      deck←deck,"🂫" "🂻" "🃋" "🃛"
      ⍝deck←deck,"🂬" "🂼" "🃌" "🃜"   ⍝knights
      deck←deck,"🂭" "🂽" "🃍" "🃝"
      deck←deck,"🂮" "🂾" "🃎" "🃞"
      deck←deck,"🂡" "🂱" "🃁" "🃑"
      deck ← ⊖13 4 ⍴ deck

      hand←(∈deck)[13?52]
      DISPLAYhand←{,(⍪hand),' '}

      DISPLAYhand
🂢 🃈 🃃 🂷 🃞 🃙 🃝 🂫 🃋 🃕 🃒 🃂 🂧
      hand←(∈deck)[13?52]
      DISPLAYhand
🂢 🃈 🃃 🂷 🃞 🃙 🃝 🂫 🃋 🃕 🃒 🃂 🂧
      hand
🂤🂺🂾🂷🂪🂱🂳🂸🃚🃅🂻🂲🂭


Thanks,
Alex


reply via email to

[Prev in Thread] Current Thread [Next in Thread]