Yes, Bob, I was flattered when I heard Henry saying that and also when I
read about your invitation. However, I am somewhat hesitant, hence the
delay in my response, due to the following reasons:
0. It seems that you and I have something in common, I am not a
professional programmer either. Moreover, programming is not even my
second field of expertise. Although I am fluent in tacit programming, I am
not a J expert either (for example, when I am programming I keep the boxed
display on all the time, consult the vocabulary often, and I am not very
familiar with explicit programming, locales, addons, mapped files, etc.).
1. I noticed that there was some interest in the tacit programming of
adverbs and conjunctions. If the goal were to discuss adverbial
programming applied in the context of current versions of the official
interpreter, and if Dan Bron were still active, I would have suggested
having him at least as a co-guest. Although, he discovered the backdoor
that made the wicked heretical way possible he never embraced it. On the
contrary, when I wrote a wicked version of an adverb he described (he
called it the holy grail) which reduces tacit adverbial programming to
tacit verbal programming, he dismissed it in such a clever way that
prompted me to write a non-wicked version. I must add that although I
wrote it, many of his insights and even bits of his code made it possible.
I should also point out that I am not quite sure if this non-wicked version
is kosher (it largely depends on what is ultimately decided regarding the
kind of arguments that train (`:6) is allowed to take). I would refer this
question to the rabbis.
2. I am not sure if there would be enough interest to discuss the wicked
tacit adverbial and conjunctional programming way that I practice.
I do not want to sound too negative. So,
0. Having a non-expert as a guest might be interesting in itself.
1. I could try to refresh my memory and skills related to the purist tacit
way. I do not have a j903 engine handy but the holy grail adverb (the
script should appear as a hg.txt file at the bottom) seems to run on the
j902 engine.
2. The wicked way is most likely no longer possible using the latest j
engines; yet, verbs produced in this manner can run fine. I would be happy
to talk about what I regard as a simpler, better, and more enjoyable way to
practice adverbial and conjunctional programming. Maybe Perlis' epigram
on programming #59 was a joke; but, a serious joke as far as I am
concerned. ;)
Please feel free to let me know if you would like to discuss the matter
further. Of course, if you decide to go ahead I would consider it an honor.
Best regards,
Pepe
On Sun, Jul 25, 2021 at 11:04 PM 'robert therriault' via Programming <
[email protected]> wrote:
> Pepe,
>
> I am not sure whether you have listened to the podcast, but Henry
> expressed great admiration
> for your ability to write tacit code. If you are interested, I would love
> to have you on as a guest,
> as your approach is one that has influenced a number of J programmers.
>
> I actually was able to dig up the old j406 documentation through the
> wayback machine
>
>
> https://web.archive.org/web/20010127031200/http://www.jsoftware.com/dict/main.htm
>
> Cheers, bob
>
> > On Jul 25, 2021, at 18:48, Jose Mario Quintana <
> [email protected]> wrote:
> >
> > Here they are...
> >
> > One can find an old Dictionary's relevant information at Martin's site:
> > F. Trains (gaertner.de) <
> http://juggle.gaertner.de/ref/dictionary/dictf.htm>
> > http://juggle.gaertner.de/ref/dictionary/dictf.htm
> >
> > I was never fully fluent because there were too many forms for me to
> > remember. However, the decision to remove most of them rendered the
> > programming of tacit conjunctions impossible. Remarkably, the
> programming
> > of tacit adverbs survived and it is, for the most part, complete. Years
> > later I realized that the last form in the list ( C0 A1 conj (x C0 y)
> A1
> > ) would alone make the programming of tacit conjunctions also complete,
> for
> > the most part. Alas, all this is academic because it has been made
> > abundantly clear that none of those forms removed will ever come back to
> > the official language.
> >
> > I have that last form restored in my custom version of J not because is
> > necessary (my version treats verbs, and adverbs and conjunctions, as
> > genuine first-class citizens and reduces tacit conjunctional programming
> to
> > tacit dyadic verbal programming) but as a tribute to the foresight (fully
> > conscious or otherwise).
> >
> > On Sat, Jul 24, 2021 at 4:22 AM Hauke Rehr <[email protected]>
> wrote:
> >
> >> maybe Jose, author of the J Wicked Tacit Toolkit,
> >> wants to throw in his 2ยข?
> >>
> >>
> >> Am 24.07.21 um 09:29 schrieb 'robert therriault' via Programming:
> >>> I started programming in J just after ti was taken out, but I believe
> >> it allowed you to create trains in conjunctions the way that we
> currently
> >> do with verbs. In the interview Henry indicated that the processing was
> >> simplified when it was taken out and the language became easier to use
> for
> >> most.
> >>>
> >>> Cheers, bob
> >>>
> >>>> On Jul 24, 2021, at 00:11, Elijah Stone <[email protected]> wrote:
> >>>>
> >>>>> there used to be a much richer of version of the language that was
> >> taken away 15 years ago. It was possible to do tacit programming with
> >> conjunctions
> >>>>
> >>>> I think I remember somebody else's mentioning that as well, at some
> >> point. How did that work?
> >>>>
>
>
NB.
----------------------------------------------------------------------------
NB. Orthodox version
NB.
----------------------------------------------------------------------------
NB. Warning:
NB. Do not load this script! Use (0!:0) instead or
NB. copy it to a JQt window and
NB. Run All Lines Ctrl+Shift+E
NB. hg
o=. @:
c=. "_
ar=. 5!:1@:<
d=. (a0=. `'') (a1=. (@:[) ((<'&')`) (`:6)) (a2=. (`(<(":0);_)) (`:6))
av=. ((ar'a0')`) (`(ar'a1')) (`(ar'a2') ) (`:6)
NB. Adverbing a monadic verb (adv)
assert 1 4 9 -: 1 2 3 *: av
aw=. < o ((0;1;0)&{::) NB. Fetching the atomic representation
d=. (a3=. (@: (aw f.)) ('av'f.)) (a4=. "_) (a5=. `:6)
a6=. ((( ar'a4') ; ] ; ( ar'a3')"_) ('av'f.)) (`:6)
NB. hg...
hg=. `((ar'a6')`(ar'a5')) (`:6)
assert 1 4 9 -: 1 2 3 ((<'*:') ; ] ) hg
assert 6 -: * (] , ((<'/')c)) hg 1 2 3
assert 0 1 3 -: (*:`(+/\)) (0&{ , (-`'') , 1&{)@:(('';1)&{::) hg 1 2 3
erase'a0 a1 a2 a3 a4 a5 a6 av aw d'
an=. <@:((,'0') ,&:< ]) NB. Atomizing nouns (monadic verb)
1 2 3 an o ((<'*:') ; ] ) hg
* an o (] , ((<'/')c)) hg
(*:`(+/\)) an o ((0&{ , (-`'') , 1&{)@:(('';1)&{::)) hg
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm