Right, I missed that one and probably another one related to fn.  In any
case, as far as I can see, although  rscan\.  performs the right
computations \. is not optimized to take advantage of the sequential nature
of them in this context,

   stp=. ([ ((<;._1 '|Sentence|Space|Time|Space * Time') , (, */&.:>@:(1
2&{))@:(] ; 7!:2@:] ; 6!:2)&>) (10{a.) -.&a:@:(<;._2@,~) ]) ".@:('0 : 0'"_)


   Y=. >:i.666

   stp 11
   *`* rscan\. Y
   *       /\. Y
)
┌────────────────┬──────┬─────────────┬────────────┐
│Sentence        │Space │Time         │Space * Time│
├────────────────┼──────┼─────────────┼────────────┤
│  (*`*)rscan\. Y│130816│0.0938228012 │12273.5236  │
├────────────────┼──────┼─────────────┼────────────┤
│   *       /\. Y│18944 │4.15345699e_6│0.0786830893│
└────────────────┴──────┴─────────────┴────────────┘

and, unfortunately,  rscan\.  cannot help much to solve Henry's challenge
which would require it to be fast, as his comments in this thread imply.


On Wed, Feb 24, 2016 at 7:19 PM, Michal Wallace <[email protected]>
wrote:

> The mistake is that the foldl version only works with a gerund of length 2
> (pascal mentioned this in his original post).
>
> Tiny cleanup to rscan:
>
>    rscan=: 1 : '((>: - m |&# y) |. m)/y'
>
>    i=: 1 : ('m,y'; ':'; 'x,m,y')
>
>    ('+'i)`('*'i)`('-'i) rscan \ 'abcd'
>
> a
>
> a-b
>
> a*b-c
>
> a+b*c-d
>
>    ('+'i)`('*'i)`('-'i) rscan \. 'abcd'
>
> a+b*c-d
>
> b*c-d
>
> c-d
>
> d
>
>
> (If it's not clear, the idea is just to rotate the gerund so that when the
> normal '/' is applied, the verbs line up in the order Raul asked for.)
>
>
>
>
> On Wed, Feb 24, 2016 at 4:19 PM, Jose Mario Quintana <
> [email protected]> wrote:
>
> > When the gerund is +`%`* and the noun is  1 2 3 4 5 6 7  (I think) the
> > values,
> >
> >        4 + 5 % 6 * 7
> > 4.11904762
> >    3 * 4 + 5 % 6 * 7
> > 12.3571429
> >
> > should appear in the result.  However,
> >
> >    +`%`* fn       1 2 3 4 5 6 7
> > 2.12804878 0.161849711 3.06153846 23.4285714 0.119047619 13 7
> >
> >    +`%`* foldl\.  1 2 3 4 5 6 7
> > 1.16184971 0.724137931 3.06153846 1.53846154 5.85714286 42 7
> >
> >    +`%`* rscan\.  1 2 3 4 5 6 7
> > 1.16184971 0.161849711 12.3571429 4.11904762 0.119047619 42 7
> >
> > they only appear in Michal's version.  Alas, \. does not seem to be
> > optimized for this case but I could be wrong.
> >
> > Did I make any mistakes?
> >
> >
> >
> > On Wed, Feb 24, 2016 at 11:14 AM, Michal Wallace <
> [email protected]
> > >
> > wrote:
> >
> > > er... that works better when you define 'i'  :)
> > >
> > > i=: 1 : ('m,y'; ':'; 'x,m,y')
> > >
> > > On Wed, Feb 24, 2016 at 10:13 AM, Michal Wallace <
> > [email protected]
> > > >
> > > wrote:
> > >
> > > > rscan:
> > > >
> > > >
> > > >    rscan =: 1 : '((>:-(#m)|#y)|.m)/y'
> > > >    ('!'i)`('?'i)`('|'i) rscan \ 'abcdefghijk'
> > > > a
> > > > a|b
> > > > a?b|c
> > > > a!b?c|d
> > > > a|b!c?d|e
> > > > a?b|c!d?e|f
> > > > a!b?c|d!e?f|g
> > > > a|b!c?d|e!f?g|h
> > > > a?b|c!d?e|f!g?h|i
> > > > a!b?c|d!e?f|g!h?i|j
> > > > a|b!c?d|e!f?g|h!i?j|k
> > > >
> > > >
> > > > r is for raul or reverse.. take your pick :)
> > > >
> > > > On Wed, Feb 24, 2016 at 8:57 AM, Alex Shroyer <[email protected]>
> > > wrote:
> > > >
> > > >> For Skip's example, a completely literal version:
> > > >>
> > > >> ((*`+)/)`((+`*)/)\. >:i.7
> > > >>
> > > >> On Wed, Feb 24, 2016 at 9:25 AM, Brian Schott <
> [email protected]
> > >
> > > >> wrote:
> > > >>
> > > >> > Pascal,
> > > >> >
> > > >> > I think your <: is too limiting. But I love your approach.
> > > >> >
> > > >> > fn =: <@|.@[ (|.each@:|.@:($~ each 1 >.   <:)  4 : 'x/ y' every
> > > >> <\.@]) ]
> > > >> > fn =: <@|.@[ (|.each@:|.@:($~ each 1 >. i.@#)  4 : 'x/ y' every
> > > >> <\.@]) ]
> > > >> >
> > > >> > On Tue, Feb 23, 2016 at 10:51 PM, Pascal Jasmin <
> > > [email protected]
> > > >> >
> > > >> > wrote:
> > > >> >
> > > >> > > fn =: <@|.@[ (|.each@:|.@:($~ each 1 >. <:)  4 : 'x/ y' every
> > > >> <\.@]) ]
> > > >> > >
> > > >> > >
> > > >> > >  %`- fn 1 2 3 4 5 6 7
> > > >> > > 0.6 1.66667 0.333333 9 _5 _1 7
> > > >> > >
> > > >> > >
> > > >> > >  *`+ fn 1 2 3 4 5 6 7
> > > >> > > 209 209 207 69 65 13 7
> > > >> > >
> > > >> > >
> > > >> > >
> > > >> > >
> > > >> >
> > ----------------------------------------------------------------------
> > > >> > 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
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to