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/forums.htm
>>>> 
>>>> 
>>>> ---
>>>> This email has been checked for viruses by AVG.
>>>> http://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

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to