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. >> >> >> >>> On Sun, Jul 16, 2017 at 1:59 PM, Raul Miller <[email protected]> wrote: >>> >>> I think you are trying to evade a basic issue, which is that the >>> distinction between tacit and explicit programming is that in explicit >>> programming names refer to arguments while in tacit programming they >>> do not. >>> >>> Altering the implementation to come up with evasive ways of having >>> named arguments is what's stinky, from my point of view. >>> >>> Thanks though, >>> >>> -- >>> Raul >>> >>> >>> On Sun, Jul 16, 2017 at 12:13 PM, Jose Mario Quintana >>> <[email protected]> wrote: >>>> Nice try but when I am wearing my hard-core tacit programmer hat I do not >>>> like to look at blatant ugly explicit definitions which are referring to >>>> arguments. ;) Heck, I do not like the smell of verbs of this kind >>> either, >>>> >>>> stinky=. ('''' , [ , '''' , a. {~ 38 40 52 32 58 39 40 120 41 61 58 32 >>> 121 >>>> 39 41"_) 128!:2 ] >>>> >>>> PS. Feel free to bring any argument suggesting that verbs involving side >>>> effects are not tacit. >>>> >>>> >>>> On Fri, Jul 14, 2017 at 6:46 PM, Raul Miller <[email protected]> >>> wrote: >>>> >>>>> And yet, all of your verbs can be pure tacit. >>>>> >>>>> For example, you could use >>>>> >>>>> is=:1 :'(m)=:y' >>>>> >>>>> That said, there is an argument that side effects make a verb impure. >>> But I >>>>> am ignoring that kind of thing. >>>>> >>>>> Thanks, >>>>> >>>>> -- >>>>> Raul >>>>> >>>>> On Friday, July 14, 2017, Jose Mario Quintana < >>>>> [email protected]> >>>>> wrote: >>>>> >>>>>> That is a different matter. >>>>>> >>>>>> Indeed, "=: works and is simple" as long as one is not concerned about >>>>>> producing (pure) tacit verbs. In that latter context, apparently, it >>>>> does >>>>>> not work well, is not simple to use and its forced use might trigger >>>>> gross >>>>>> space and time inefficiencies (for example, as discussed recently in >>> the >>>>>> "[Jprogramming] Side effects in tacit expressions" thread). >>>>>> >>>>>> Introducing new primitives is, in my view, a matter of perspective and >>>>>> opportunity. I thought the verbs =.. and =:: had sufficient merits >>> and >>>>> I >>>>>> had the means to include them in the version of the J interpreter >>> that I >>>>>> use almost all the time (Jx). I just thought this could be an >>>>> opportunity >>>>>> to make the official interpreter a little more tacit friendly for the >>>>>> benefit of other tacit programming hard-core fans; that is all. >>>>>> >>>>>> In any case, there are other much more important unfortunate >>> omissions, >>>>> in >>>>>> current official implementations, that drastically hinder tacit >>>>> programming >>>>>> (but that is yet another topic for another time). >>>>>> >>>>>> >>>>>> On Thu, Jul 13, 2017 at 8:36 PM, Raul Miller <[email protected] >>>>>> <javascript:;>> wrote: >>>>>> >>>>>>> Ok, but a routine being interesting is not sufficient motivation for >>>>>>> incorporating it as a language primitive. There are just too many >>>>>>> interesting possibilities. >>>>>>> >>>>>>> =: works and is simple. >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> -- >>>>>>> Raul >>>>>>> >>>>>>> On Thursday, July 13, 2017, Jose Mario Quintana < >>>>>>> [email protected] <javascript:;>> wrote: >>>>>>> >>>>>>>> These [0, 1, 2, 3, 4, 5] are more forum instances of use or >>> suggested >>>>>> use >>>>>>>> of the verb 4 :'(x)=: y' (or equivalent), >>>>>>>> >>>>>>>> [0] [Jprogramming] Tacit or Explicit Raul Miller >>>>>>>> http://www.jsoftware.com/pipermail/programming/2017- >>>>>>>> January/046538.html >>>>>>>> >>>>>>>> [1] [Jbeta] with effort for inplace assignment performance Raul >>>>> Miller >>>>>>>> http://www.jsoftware.com/pipermail/beta/2016-July/008397.html >>>>>>>> >>>>>>>> [2] [Jprogramming] copula Raul Miller >>>>>>>> http://www.jsoftware.com/pipermail/programming/2014- >>>>>>>> November/040246.html >>>>>>>> >>>>>>>> [3] [Jbeta] Why isn't copula a dyadic verb? Pascal Jasmin >>>>>>>> http://www.jsoftware.com/pipermail/beta/2014-November/007754.html >>>>>>>> >>>>>>>> [4] [Jprogramming] copula Dan Bron >>>>>>>> http://www.jsoftware.com/pipermail/programming/2014- >>>>>> June/037704.html >>>>>>>> >>>>>>>> [5] Jforum: Syntax error on "is =: =:" josemarioquintana >>>>>>>> http://www.jsoftware.com/pipermail/general/2002-June/009932.html >>>>>>>> >>>>>>>> >>>>>>>> On Wed, Jul 12, 2017 at 8:11 PM, Jose Mario Quintana < >>>>>>>> [email protected] <javascript:;> <javascript:;>> >>> wrote: >>>>>>>> >>>>>>>>> Sure, there are different ways to perform a task, for example, >>>>>>>>> >>>>>>>>> 2&* 1 2 3 >>>>>>>>> 2 4 6 >>>>>>>>> +: 1 2 3 >>>>>>>>> 2 4 6 >>>>>>>>> >>>>>>>>> What do you mean by "the rest of that"? >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Jul 12, 2017 at 7:40 PM, Raul Miller < >>>>> [email protected] >>>>>> <javascript:;> >>>>>>>> <javascript:;>> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> All [1] needed was >>>>>>>>>> >>>>>>>>>> add=:4 :0 >>>>>>>>>> ((0{::y),'__x')=: ".1{::y >>>>>>>>>> ) >>>>>>>>>> >>>>>>>>>> But I don't really follow the rest of that. >>>>>>>>>> >>>>>>>>>> Thanks, >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Raul >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Wed, Jul 12, 2017 at 7:14 PM, Jose Mario Quintana >>>>>>>>>> <[email protected] <javascript:;> <javascript:;>> >>>>>> wrote: >>>>>>>>>>> The assignments are a consequence of J's agreement; see [0] >>> for >>>>>>>> example. >>>>>>>>>>> If one wants the effect of 'a b c' =:i.3 4 5 using the >>> verb is >>>>>>> (or >>>>>>>> a >>>>>>>>>>> similar verb) then one can use 'a b c' is i.3 4 5 :) >>>>>>>>>>> >>>>>>>>>>> How is 'abc' is"0 i.3 4 5 useful? I do not know... Who >>>>> knows? >>>>>>>>>>> >>>>>>>>>>> How is the verb is (or a similar verb) useful? See [1, >>> 2] >>>>> for >>>>>>>>>> instance >>>>>>>>>>> (not to mention for debugging tacit verbs). >>>>>>>>>>> >>>>>>>>>>> References >>>>>>>>>>> >>>>>>>>>>> [0] Rank and Uniformity Roger K.W. Hui >>>>>>>>>>> http://www.jsoftware.com/papers/rank1.htm >>>>>>>>>>> >>>>>>>>>>> [1] [Jprogramming] Dynamic Language Features in J? Oleg >>>>> Kobchenko >>>>>>>>>>> http://www.jsoftware.com/pipe >>> rmail/programming/2006-Decembe >>>>>>>>>> r/004479.html >>>>>>>>>>> >>>>>>>>>>> [2] [Jprogramming] Saving Nouns as Permanent Data Jose Mario >>>>>>> Quintana >>>>>>>>>>> http://www.jsoftware.com/pipe >>> rmail/programming/2008-April/ >>>>>>>>>> 010529.html >>>>>>>>>>> >>>>>>>>>>> >>>>> >>>> ---------------------------------------------------------------------- >>>> 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
