Clifford, I don't like the boxing either, I also don't like the fact that generation of a list of numbers that I don't even use (i. 100) just to call a function N times was the only solution I could find. I almost don't ask questions around here as it makes me feel even more stupid than I normally feel for having to ask in the first place.
Your solution is just another confirmation to me that the day J is more ubiquitous than JavaScript is the same day that World Peace breaks out, starvation ends, and we all live happily evert after. Thanks, I will study that single line of code very very closely. Sean. On Thu, 24 Dec 2020 at 11:53, Clifford Reiter <[email protected]> wrote: > You might look at avoiding the boxing; for example > > ?10 # ,:3 1024 768 > > 1 259 473 > > 1 628 503 > > 0 672 357 > > 2 1003 559 > > 0 407 117 > > 2 620 116 > > 0 840 45 > > 2 581 444 > > 2 166 629 > > 1 217 202 > > > > > > On Thu, Dec 24, 2020 at 5:48 AM emacstheviking <[email protected]> wrote: > > > I have a simple verb that returns a list of randomised numbers > > > > stargen=: monad define > > 'maxx maxy'=.y > > (?2),(?maxx),(?maxy), 1 > > ) > > > > For the life of me I have failed to just call it and create a table of > the > > results. > > > > Initially I tried 100 $ stargen 1024;768 but that just calls it once and > > cycle repeats the same value one hundred times, close but no tobacco > > related products in sight. > > > > Then I ended up with this version > > > > sg =: 3 : '(?2),(?100),(?100)' > > sg2 =: 3 : '(?3),(?0{::y),(?1{::y),1' > > > > and the nearest I got to what I need is this: > > > > > (sg) each i. 10 > > 0 53 53 > > 0 52 25 > > 0 38 96 > > 1 92 75 > > 0 31 47 > > 1 87 65 > > 1 74 11 > > 0 30 75 > > 0 4 51 > > 1 64 99 > > > > but when I use the version that takes 1024;768 as the y value (sg2) I > get a > > domain error, > > > > > (sg2 1024;768) each i. 10 > > |domain error > > | >(sg2 1024;768) each i.10 > > > > each is defined as &.> which as I understand it (probably wrong) first > > unboxes the list of integers 0..9 which wasn't even boxed in the first > > place (but I am stuck, after all), after the unboxing it then does the &. > > (under) which applies ....why am I tell you this, you know this. > > > > Eventually I considered making my verb (stargen) a dyad and tackling it > > this way, which works: > > > > sg3 > > 4 : '(?3),(?0{::x),(?1{::x),1' > > > > and running it like this: > > > > > (1024;768)&sg3 each i. 10 > > 2 1013 257 1 > > 0 251 127 1 > > 2 957 732 1 > > 0 508 263 1 > > 2 358 340 1 > > 2 1012 731 1 > > 0 82 436 1 > > 1 228 57 1 > > 1 990 759 1 > > 1 102 4 1 > > > > I just wanted a table of N rows of stargen output, passing in the current > > window dimensions. Fail! :D > > Looking for a better / neater / more J like way of doing this so I can > > learn for future sessions. > > > > Thanks > > Sean > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
