(Answering your request for advice...) Personally, my original use of J was for fun. I'd not necessarily try really hard on any one day, but I kept at it over time (and sometimes I do study deeply, when a subject catches my eye).
The primary value of J, for me, over the years, has been a tool for thinking about algorithms and architectures. If I ever ran into a problem that I couldn't think how to write, I'd go "how would I solve this in J" and sometimes write an implementation in J. I've one some projects in J, also (including one I am working on right now). But I couldn't predict where you would find direct application of the language to be useful. Thanks, -- Raul On Thu, Jul 17, 2014 at 6:05 AM, Ben Gorte - CITG <[email protected]> wrote: > Incidentally, in my private standard library I had > > blowup > 4 : 'x # x #"1 y' > > which is easy to grasp I think. Of course I can go like: > > 13 : 'x # x #"1 y' > [ # #"1 > > but I would never have gotten this idea without using 13: > > I only can derive it from x (f g h) y == (x f y) g (h f y), so: > x ([ # #"1) y == (x[y) # (x#"1 y) == x # x #"1 y > > Well, yeah. > > I'm always wondering how worthwile it is to spend time (and how much?) to > become a more fluent tacit J-speaker. Some advice? > > Meanwhile I was also looking at generating the input pattern: > #. inv dfh &> ' 'cut 'FF 81 BD A5 A5 BD 81 FF' > How about 2 | the Manhattan distance from the center: > pat =: 3 : '2|<. >./"1 | (-:<:y)-~ >{;~i.y' > ? > Now I can say: > 3 blowup pat 11 > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 > 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 > 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1 1 > 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 > 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 > 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > > (but it's not tacit) > > Ben > > > ________________________________________ > From: [email protected] > [[email protected]] on behalf of Raul Miller > [[email protected]] > Sent: Thursday, July 17, 2014 00:38 > To: Programming forum > Subject: Re: [Jprogramming] a zoom function (doubling points accross rows > and columns) > > Yes, I got as far as > > 2#2#"1#: dfh;.1 ' FF 81 BD A5 A5 BD 81 FF' > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 > 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 > 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 > 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 > 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 > 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 > 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 > 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 > 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 > 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 > 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 > 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 > > when I saw your spoiler. > > Oh well... :) > > Thanks, > > -- > Raul > > > On Wed, Jul 16, 2014 at 6:32 PM, 'Pascal Jasmin' via Programming > <[email protected]> wrote: >> spoiling quiz with answer already, neat short fork. >> >> zoom =: [ # #"1 >> >> >> ----- Original Message ----- >> From: 'Pascal Jasmin' via Programming <[email protected]> >> To: Programming forum <[email protected]> >> Cc: >> Sent: Wednesday, July 16, 2014 6:08:28 PM >> Subject: [Jprogramming] a zoom function (doubling points accross rows and >> columns) >> >> there are too many ways to write this function, and there is probably a way >> that is better than what I could think of. >> >> #. inv dfh &> ' 'cut 'FF 81 BD A5 A5 BD 81 FF' >> 1 1 1 1 1 1 1 1 >> 1 0 0 0 0 0 0 1 >> 1 0 1 1 1 1 0 1 >> 1 0 1 0 0 1 0 1 >> 1 0 1 0 0 1 0 1 >> 1 0 1 1 1 1 0 1 >> 1 0 0 0 0 0 0 1 >> 1 1 1 1 1 1 1 1 >> >> zoom =: ([ * ({.,{:)@:$@:]) $ [:, ([, [ * {:@:$@:]) $"1 #"1 >> >> 2 zoom #. inv dfh &> ' 'cut 'FF 81 BD A5 A5 BD 81 FF' >> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 >> 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 >> 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 >> 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 >> 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 >> 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 >> 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 >> 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 >> 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 >> 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 >> 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 >> 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 >> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 >> >> for every cell in original, a 2x2 copy of that cell is made. >> ---------------------------------------------------------------------- >> 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 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
