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