I forgot to mention that although a list of boxed verbs is clearly
different from a gerund produced by tying verbs; often, but not always,
they are equivalent as far as the interpreter is concerned. For example,
( BV=. (''$ (train o <)`'') process (*:`(+/ % #)) ) NB. SIMD that works
only with the unorthodox version of train
┌──┬──────┐
│*:│+/ % #│
└──┴──────┘
BV process Y NB. MIMD
┌─────┬───┐
│1 4 9│4.5│
└─────┴───┘
On Wed, Apr 15, 2015 at 8:21 PM, Raul Miller <[email protected]> wrote:
> While true, I'd like to caution you that "more general" can be better
> (sometimes significantly better), or worse (sometimes significantly
> worse), depending on the nature of the generality.
>
> Thanks,
>
> --
> Raul
>
> On Wed, Apr 15, 2015 at 7:31 PM, Jose Mario Quintana
> <[email protected]> wrote:
> > "(+/ % #)`'' NB. turns verb into ar, display ommitted"
> >
> > There is a subtle difference between the atomic representation of a
> verb u
> > and the gerund form (u`'') (both are gerunds); sometimes it can make all
> > the difference. Consider the following implementation of a verb
> (process)
> > in the spirit of Mutiple/Single Instruction Multiple/Single Data
> processors.
> >
> > mean=. +/ % #
> > AR=. (5!:1)@< 'mean'
> >
> > GT=. (+/ % #)`''
> >
> > AR -: GT
> > 0
> >
> >
> > o=. @:
> > y=. @:]
> > an=. <@:((,'0') ,&< ])
> > train=. 'y `:6'(3 :) NB. Orthodox explicit version
> >
> > process=. < o train o ([ ; (an o >) y)("0)
> >
> >
> > Y=. 1 2 3 ; 4 5
> >
> > AR process Y NB. SIMD
> > ┌─┬───┐
> > │2│4.5│
> > └─┴───┘
> > GT process Y NB. SIMD does not work with GT
> > |length error: process
> > | GT process Y
> > |[-20]
> >
> >
> > (''$GT) process Y NB. SIMD
> > ┌─┬───┐
> > │2│4.5│
> > └─┴───┘
> >
> > AR -: ''$GT
> > 1
> >
> > AR process <1 2 3 NB. SISD
> > ┌─┐
> > │2│
> > └─┘
> > (*:`(+/ % #)) process <1 2 3 NB. MISD
> > ┌─────┬─┐
> > │1 4 9│2│
> > └─────┴─┘
> > (*:`(+/ % #)) process Y NB. MIMD
> > ┌─────┬───┐
> > │1 4 9│4.5│
> > └─────┴───┘
> >
> > Alternatively,
> >
> > train=. (<'`:')(0:`)(,^:)&6 NB. Unorthodox tacit version
> >
> > AR process Y NB. SIMD
> > ┌─┬───┐
> > │2│4.5│
> > └─┴───┘
> > AR process <1 2 3 NB. SISD
> > ┌─┐
> > │2│
> > └─┘
> > (*:`(+/ % #)) process <1 2 3 NB. MISD
> > ┌─────┬─┐
> > │1 4 9│2│
> > └─────┴─┘
> > (*:`(+/ % #)) process Y NB. MIMD
> > ┌─────┬───┐
> > │1 4 9│4.5│
> > └─────┴───┘
> >
> > There is also a subtle difference between the orthodox and the unorthodox
> > versions of train: the unorthodox version is more general; for example,
> one
> > can produce a genuine array of boxed verbs easily,
> >
> > (''$ (train o <)`'') process (*:`(+/ % #)) NB. SIMD
> > ┌──┬──────┐
> > │*:│+/ % #│
> > └──┴──────┘
> >
> >
> > On Tue, Apr 14, 2015 at 4:31 AM, 'Pascal Jasmin' via Programming <
> > [email protected]> wrote:
> >
> >> > But how would I convert a verb to a string in the first place?
> >>
> >> J has 2 such useful representations: linear and atomic. atomic is that
> >> of gerunds, and several built in modifiers can turn gerunds/ar's back
> into
> >> verbs.
> >>
> >> I find linear representation easier to read and work with.
> >>
> >> lrA =: 1 : '5!:5 < ''u'''
> >>
> >>
> >> (+/ % #)`'' NB. turns verb into ar, display ommitted
> >>
> >> (+/ % #) lrA NB. result is string.
> >> +/ % #
> >>
> >>
> >> the eval function (for lr s) that I prefer is:
> >>
> >> eval =: 1 : ' a: 1 : m' NB. can return any form of speech.
> >>
> >>
> >> though (".) works well if your phrase will return a noun.
> >>
> >> +: '@' eval +
> >> +:@+
> >>
> >>
> >> +/ lrA , 1 2 3 lrA
> >> +/1 2 3 NB. string result
> >>
> >>
> >>
> >>
> >>
> >> ________________________________
> >> From: Jon Hough <[email protected]>
> >> To: "[email protected]" <[email protected]>
> >> Sent: Tuesday, April 14, 2015 4:11 AM
> >> Subject: [Jprogramming] Verb to string and Verb array
> >>
> >>
> >> I have a couple of questions:
> >> 1. Is it possible to convert a verb, e.g. +/%# , to a string?": '+/%#
> 2 3
> >> 4' executes a stringed verb with an argument. But how would I convert a
> >> verb to a string in the first place?
> >> Also, I discovered the eval verb
> >>
> >>
> >> eval=: 1 : 0
> >>
> >> ". 'w =. ' , u
> >>
> >> (ar < 'w') ab
> >>
> >> )
> >>
> >>
> >> Does this have an inverse?
> >>
> >> 2. If I have two verbs (or conjunctions, adverbs for that matter), can I
> >> not pass them around in a list?
> >> e.g. in other languages, like C# I can put functions into a list
> >> (List<Action> for example).
> >> I searched JforC and the J website and couldn't find any way to do this.
> >> Thanks Jon
> >> ----------------------------------------------------------------------
> >> 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