​​
Ah! Thanks S H! That is what I was looking for:

] f1 =. 13 : '+/ ! >: 2 * i. y'

] ([: +/ [: ! [: >: 2 * i.)


So the named tacit function would be:

f1=.[:+/[:![:>:2*i.


I had a hard time figuring out where to put in the caps ([:) in the tacit
verb.


If that's the case, I might as well just use the explicit definition:

f =.3 :'+/!>:2*i.y'

f 1

1

f 2

7

f 5
368047

Is there any advantage to the pure tacit version, f1?

Skip



On Sat, Jul 7, 2018 at 7:01 PM S H Makdisi <[email protected]> wrote:

> As far as I understand, the rationale comes from the way J parses its
> sentences, as explained in section E of the dictionary
> (http://www.jsoftware.com/help/dictionary/dicte.htm).
> When you assign a name to a verb, and the parser then runs into that name,
> it
> has to be considered as a valid verb, not as a sequence of symbols.
>
> However, when you're assigning the tacit verb, you can instead use the '13
> :'
> definition to generate your tacit verb:
>
>         ] f =. 13 : '+/ ! >: 2 * i. y'
> [: +/ [: ! [: >: 2 * i.
>         f 5
> 368047
>
> If I am programming quickly i will often use '13 :' to define verbs before
> going back and optimizing them.
>
> It is important however to learn the use of cap ( [: ) in a verb train, so
> as
> not to rely on the interpreter to do the heavy lifting of writing the
> program,
> rather than running it.
>
> [2018-07-07 17:06]
> >
> > part       text/plain                1873
> > Hmmm.. parentheses are automatically added when I assign a name to a
> verb!
> > What is the rationale for always adding parentheses when assinging a name
> > to a verb? It seems to be unnecessarily complicating a simple process.
> >
> > In any case, what method can I use to remove those parentheses, or at
> least
> > nullify their effect, when assiging a name?
> >
> > Skip
> >
> >
> >
> > On Sat, Jul 7, 2018 at 4:12 PM Henry Rich <[email protected]> wrote:
> >
> > > Assigning to a name adds an implied set of parentheses.  Thus if you
> write
> > >
> > > f =. +/!>:2*i.
> > >
> > > When you execute
> > >
> > > f 5
> > >
> > > you will get the same result as if you had executed
> > >
> > > (+/!>:2*i.) 5
> > >
> > > Try it and see.
> > >
> > > Henry Rich
> > >
> > >
> > > On 7/7/2018 5:07 PM, Skip Cave wrote:
> > > > I have a tacit verb that finds the sum of the factorials of the odd
> > > > integers from 1 to 2n - 1:
> > > >
> > > > +/!>:2*i.1
> > > >
> > > > 1
> > > >
> > > > +/!>:2*i.2
> > > >
> > > > 7
> > > >
> > > > +/!>:2*i.3
> > > >
> > > > 127
> > > >
> > > > +/!>:2*i.4
> > > >
> > > > 5167
> > > >
> > > > I want to assign that tacit verb a name f:
> > > >
> > > > f=. +/!>:2*i
> > > >
> > > > f 1
> > > >
> > > > 2
> > > >
> > > > f 2
> > > >
> > > > 3 3
> > > >
> > > > f 3
> > > >
> > > > 4 4 4
> > > >
> > > > f 4
> > > >
> > > > 5 5 5 5
> > > >
> > > >
> > > > My tacit verb doesn't work the same when I assign it a name. How do I
> > > > modify the verb to allow me to name it? Why do I have to change my
> verb,
> > > > just because I assign it a name?
> > > >
> > > > Skip
> > > >
> > > >
> > > > Skip Cave
> > > > Cave Consulting LLC
> > > >
> ----------------------------------------------------------------------
> > > > For information about J forums see
> http://www.jsoftware.com/forums.htm
> > >
> > >
> > > ---
> > > This email has been checked for viruses by AVG.
> > > https://www.avg.com
> > >
> > > ----------------------------------------------------------------------
> > > 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