|
From: | Christian Robert |
Subject: | Re: [Bug-apl] dynamic function not referencing global? |
Date: | Wed, 26 Oct 2016 14:16:54 -0400 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 |
Niladic Lambda can be usefull. I wonder if it could be possible to use some trick to generate niladic Lambda. Like in: )erase time time←{⎕TS ;x} Since this lambda has a local variable defined, then it should be a definition and since there is no ⍵ nor ⍺ then it should be niladic one. Only Juergen can say if it is possible, or find an other trick and how hard to implement ... Just some personnal tought. Xtian. On 2016-10-26 06:54, Juergen Sauermann wrote:
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
[Prev in Thread] | Current Thread | [Next in Thread] |