Posisbly the only virtue of this offering is that it's different from Kenneth's!:

   va =: - (|."0 1) 1 ,. 0 $~ 9 ,~ #    NB. !!!

   va 1 2 3
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0

   va 0 3 7
1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0


Mike



On 29/10/2018 18:03, Kenneth Lettow wrote:
Maybe something like this?

v=: (i.10)&e."_ 0

v 1 2 3

0 1 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0 0

0 0 0 1 0 0 0 0 0 0

v 0 1 2

1 0 0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0 0




On Mon, Oct 29, 2018 at 1:57 PM, Lorenz Köhl <[email protected]> wrote:

Hi,

I need a verb to turn a list of numbers between zero and nine
into a table where each item is 10$0 except at the place indexed
by the input numbers, for example:

    v 0 1 2

1 0 0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0 0

My approach using ammend leaves me puzzled:


v=:1&(]})&(10$0)

v 1 2 3

1 0 0 0 0 0 0 0 0 0

1 1 0 0 0 0 0 0 0 0

1 1 0 0 0 0 0 0 0 0


Here I have to bind two nouns (1 as x and 10$0 as y) to the verb

(]}) but maybe that doesn't do what I think it does? The rank of v

doesn't seem to matter, it gives the same output, but I know I want

it to use 0-cells of the input list.


I'd be happy to see what the idiomatic way to do this is, and maybe

how to fix my approach.


greetings,

Lorenz
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm





---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to