|
From: | Elias Mårtenson |
Subject: | Re: [Bug-apl] IOTA |
Date: | Wed, 2 Mar 2016 17:47:36 +0800 |
Cool! For bonus marks can you make it work in the degenerate case:
⍳⍬ ←→ ⊂⍬
?
Jay.
On 2 March 2016 at 02:23, Elias Mårtenson <address@hidden> wrote:
> Looking at it further, I realise you need do disclose the result in order to
> make them equivalent:
>
> IOTA ← {⊃∘.,/⍳¨⍵}
>
> Regards,
> Elias
>
> On 2 March 2016 at 10:19, Elias Mårtenson <address@hidden> wrote:
>>
>> I don't know about a loop, but wouldn't this do the same thing?
>>
>> IOTA ← {∘.,/⍳¨⍵}
>>
>> Regards,
>> Elias
>>
>> On 2 March 2016 at 09:57, Christian Robert <address@hidden>
>> wrote:
>>>
>>> I have this function,
>>>
>>> ∇IOTA[⎕]∇
>>> ∇
>>> [0] z←IOTA v
>>> [1] z←⍳↑v
>>> [2] v←1↓,v
>>> [3] Loop: →(0=⍴v)/0
>>> [4] z←z∘.,⍳↑v
>>> [5] v←1↓v
>>> [6] →Loop
>>> ∇
>>>
>>> ]boxing 24
>>>
>>> IOTA 0
>>> ┌⊖┐
>>> │0│
>>> └─┘
>>> IOTA 10
>>> ┌10──────────────────┐
>>> │1 2 3 4 5 6 7 8 9 10│
>>> └────────────────────┘
>>> IOTA 2 3
>>> ┌3────────────────┐
>>> 2┌2──┐ ┌2──┐ ┌2──┐│
>>> ││1 1│ │1 2│ │1 3││
>>> │└───┘ └───┘ └───┘│
>>> │┌2──┐ ┌2──┐ ┌2──┐│
>>> ││2 1│ │2 2│ │2 3││
>>> │└───┘ └───┘ └───┘│
>>> └∊────────────────┘
>>> IOTA 2 3 5
>>> ┌5──────────────────────────────────────┐
>>> 2┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐│
>>> ││1 1 1│ │1 1 2│ │1 1 3│ │1 1 4│ │1 1 5││
>>> 3└─────┘ └─────┘ └─────┘ └─────┘ └─────┘│
>>> │┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐│
>>> ││1 2 1│ │1 2 2│ │1 2 3│ │1 2 4│ │1 2 5││
>>> │└─────┘ └─────┘ └─────┘ └─────┘ └─────┘│
>>> │┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐│
>>> ││1 3 1│ │1 3 2│ │1 3 3│ │1 3 4│ │1 3 5││
>>> │└─────┘ └─────┘ └─────┘ └─────┘ └─────┘│
>>> │ │
>>> │┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐│
>>> ││2 1 1│ │2 1 2│ │2 1 3│ │2 1 4│ │2 1 5││
>>> │└─────┘ └─────┘ └─────┘ └─────┘ └─────┘│
>>> │┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐│
>>> ││2 2 1│ │2 2 2│ │2 2 3│ │2 2 4│ │2 2 5││
>>> │└─────┘ └─────┘ └─────┘ └─────┘ └─────┘│
>>> │┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐ ┌3────┐│
>>> ││2 3 1│ │2 3 2│ │2 3 3│ │2 3 4│ │2 3 5││
>>> │└─────┘ └─────┘ └─────┘ └─────┘ └─────┘│
>>> └∊──────────────────────────────────────┘
>>>
>>>
>>>
>>> my question is: can such a function can be written in Lambda style ?
>>> (especially in gnuapl)
>>>
>>> eg:
>>>
>>> IOTA ← { ... }
>>>
>>> That IOTA function simulate the behavior of "⍳" on "Dyalog APL" and
>>> NARS2000 and more interpretors when the argument is a vector.
>>>
>>>
>>> thanks,
>>>
>>> Xtian.
>>>
>>>
>>>
>>
>
[Prev in Thread] | Current Thread | [Next in Thread] |