Gerunds contain typically verb representations. You need special syntax to
produce the verb from the representation, `:6 brings it back in your verb
apply. One can produce a corresponding non-compliant boxed arrays of verbs
(actual verbs), for example (see the reference [0] below for the definition
of box),
G=. -`%`*:`%:
F=. box G NB. Jx: F=. [: - % *: %: ]:
F
┌─┬─┬──┬──┐
│-│%│*:│%:│
└─┴─┴──┴──┘
One can index one out as usual,
2 {:: F
*:
2 {:: F 1 2 3
1 4 9
((2 {:: F) + (3 {:: F)) 1 2 3
2 5.41421 10.7321
1 2 (1 {:: F) 3
0.333333 0.666667
One can even produce an open array of verbs but they are very tricky,
E=. >F
E
-
$E
$ E
$F
4
type'F'
┌────┐
│noun│
└────┘
type'E'
┌────┐
│verb│
└────┘
$@:> F
4
2&{@:>F 1 2 3
1 4 9
<"0@:>F
┌─┬─┬──┬──┐
│-│%│*:│%:│
└─┴─┴──┴──┘
(-: <"0@:>)F
1
Fasten your seatbelt tightly because crashes are imminent when learning to
drive. Once one gets some practice they become rare. If you are not sure
what a sentence will produce... Get ready!
I hope this helps
On Wed, Jul 19, 2017 at 3:45 AM, Louis de Forcrand <[email protected]> wrote:
> K supports first-class verbs; one can make an array of verbs, index one
> out, and apply it to something using the same syntax as for normal function
> application.
> This is feasable in J, but only by using a special "apply" verb (perhaps
> gurus know another way?).
> Not trying to go full tacit,
>
> apply=: 4 : 0
> x`:6 y
> )
>
> for example.
>
> While this is more clunky, we must remember that:
> 1) K function application looks like this:
> user_defined_function[arg1;arg2;arg3;etc.]
> 2) K does not support tacit programming like J does. More specifically it
> does not support trains. J would not be able to do this if there were no
> noun / function / operator hierarchy:
> f ; g
> would that be a list of f and g or the train as we know it? The hierarchy
> allows paren-free parsing rules and infix as well:
> f @ g instead of @[f;g]
>
> All in all, clunky first-class verbs are a price I am (and most Jers I
> assume are) willing to pay in order to get trains. Like you say, a little
> inconsistency can be very practical.
>
> Louis
>
> > On 18 Jul 2017, at 20:23, Raul Miller <[email protected]> wrote:
> >
> > Specifically, what you call "first class verbs" are, according to the
> > dictionary, supposed to be trains.
> >
> > That this glitch seems useful says something, I think, about the value
> > of inconsistency.
> >
> > Thanks,
> >
> > --
> > Raul
> >
> >
> > On Tue, Jul 18, 2017 at 6:52 PM, Jose Mario Quintana
> > <[email protected]> wrote:
> >> Louis, call me Pepe (which is the nickname for Jose); that is how
> friends
> >> call me.
> >>
> >> Even if first-class verbs are not in compliance with the J Dictionary,
> >> official interpreters allow them but one has to wrestle with the
> >> interpreters. Using first-class verbs, one can operate on verbs [0] in
> a
> >> similar way one can operate on nouns [1]. Jx extensions make their use
> >> more pleasant and goes beyond first-class verbs; Jx also facilitates to
> >> pass verbs, adverbs and conjunctions to verbs, adverbs and conjunctions
> to
> >> produce verbs, adverbs and conjunctions.
> >>
> >> [0] Tacit (unorthodox) version
> >> https://rosettacode.org/wiki/First-class_functions#Tacit_.
> >> 28unorthodox.29_version
> >> [1] Tacit (unorthodox) version
> >> https://rosettacode.org/wiki/First-class_functions/Use_
> >> numbers_analogously#Tacit_.28unorthodox.29_version
> >>
> >>
> >> On Tue, Jul 18, 2017 at 12:36 AM, Louis de Forcrand <[email protected]>
> >> wrote:
> >>
> >>> I’d guess is that by “unstable” he meant “currently being modified".
> >>> In any case, thanks for the link Jose (what should I call you? Pepe?).
> >>> If there was one thing I could add to J it would be better support for
> >>> first-class verbs (arrays of verbs, passing verbs as arguments), if
> only
> >>> for the beauty of it, but I know this is neither easy nor practical in
> >>> reality.
> >>> However trying out your new version of Jx is; I’ll take a look at it
> if you
> >>> release it. In the meantime I’ll look into your J701 version when I
> have
> >>> the time!
> >>>
> >>> Louis
> >>>
> >>>> On 17 Jul 2017, at 20:21, HenryRich <[email protected]> wrote:
> >>>>
> >>>> Unstable? If you have a bug in J8.06, please post it at
> >>>>
> >>>> http://code.jsoftware.com/wiki/System/Interpreter/Bugs
> >>>>
> >>>> I don't see any bugs that are new in 8.06, and plenty that are fixed
> >>> from previous versions.
> >>>>
> >>>> Henry Rich
> >>>>
> >>>>> On 7/17/2017 7:06 PM, Jose Mario Quintana wrote:
> >>>>> Louis, a Jx interpreter implements extensions to the language. It
> >>> supports
> >>>>> tacit programming full-heartedly and embraces first-class verbs.
> There
> >>> are
> >>>>> publicly available patches for Jx extensions, as well as, a
> pre-built 32
> >>>>> bit Windows dll and Pre-built 32 and 64 bit Linux libs at
> >>>>>
> >>>>> http://www.2bestsystems.com/foundation/j/jx0/index.html
> >>>>>
> >>>>> but it is an early version of Jx based on the J701 source. Jx has
> >>> evolved
> >>>>> (e.g., the primitives =.. and =:: were added afterwards) and J's core
> >>>>> engine has evolved rapidly as well; it has been very difficult to
> catch
> >>> up.
> >>>>> ("Be careful what you wish for.") :)
> >>>>>
> >>>>> The current unreleased version of Jx is based on the unstable
> official
> >>> J806
> >>>>> beta source and there are some relatively minor Jx glitches. We were
> >>>>> planning to wait for the official J806 to become stable and resolve
> the
> >>> Jx
> >>>>> glitches but I might decide instead to release a current version, as
> is,
> >>>>> soon.
> >>>>>
> >>>>>
> >>>>> On Mon, Jul 17, 2017 at 7:40 AM, Louis de Forcrand <[email protected]
> >
> >>> wrote:
> >>>>>
> >>>>>> A lot has been said on these forums about Jx and Unbox.
> >>>>>> They are unofficial J interpreters (with extensions to the
> language),
> >>> are
> >>>>>> they not?
> >>>>>> Are they publicly available? I couldn't find anything about them on
> >>> Google
> >>>>>> except older messages in the forum archives, but then again
> >>> unfortunately
> >>>>>> this language's name makes it sometimes hard to look up on the web.
> >>>>>>
> >>>>>> Thanks!
> >>>>>> Louis
> >>>>>>
> >>>>>>> On 16 Jul 2017, at 15:37, Raul Miller <[email protected]>
> wrote:
> >>>>>>>
> >>>>>>> Sure, and the biggest problem here is the use of globals for
> >>> arguments.
> >>>>>>>
> >>>>>>> The verbs themselves can be pure, but all we're really doing is
> >>>>>>> rearranging the deck chairs.
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>>
> >>>>>>> --
> >>>>>>> Raul
> >>>>>>>
> >>>>>>>
> >>>>>>> On Sun, Jul 16, 2017 at 3:33 PM, Jose Mario Quintana
> >>>>>>> <[email protected]> wrote:
> >>>>>>>> At least we agree, I think, on one thing " in explicit programming
> >>>>>>>> [typically] names refer to arguments while in tacit programming
> they
> >>> do
> >>>>>>>> not." Thus, is not just a matter of tacit aesthetics, there are
> some
> >>>>>>>> consequences which might be difficult to evade:
> >>>>>>>>
> >>>>>>>> ('`u v') =: +/`*:
> >>>>>>>> u@:v f.
> >>>>>>>> +/@:*:
> >>>>>>>>
> >>>>>>>> ('`u v') =:: +/`*: NB. Jx
> >>>>>>>> ┌───────┬──┐
> >>>>>>>> │┌─┬───┐│*:│
> >>>>>>>> ││/│┌─┐││ │
> >>>>>>>> ││ ││+│││ │
> >>>>>>>> ││ │└─┘││ │
> >>>>>>>> │└─┴───┘│ │
> >>>>>>>> └───────┴──┘
> >>>>>>>> u@:v f.
> >>>>>>>> +/@:*:
> >>>>>>>>
> >>>>>>>> ('`u v') is +/`*: NB.
> >>>>>>>> |domain error
> >>>>>>>> | (m) =:y
> >>>>>>>> is
> >>>>>>>> 1 : '(m)=:y'
> >>>>>>>>
> >>>>>>>> So, assuming I understood the intended use of your adverb is, I
> am
> >>>>>> afraid
> >>>>>>>> your adverb cannot be used without typical limitations.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>> ------------------------------------------------------------
> ----------
> >>>>> For information about J forums see http://www.jsoftware.com/forum
> s.htm
> >>>>
> >>>>
> >>>> ---
> >>>> This email has been checked for viruses by AVG.
> >>>> http://www.avg.com
> >>>>
> >>>> ------------------------------------------------------------
> ----------
> >>>> For information about J forums see http://www.jsoftware.com/forum
> s.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