> I haven't intentionally removed support for any nonstandard features,

Thanks for the clarification, Henry.  That is reassuring to me.

> but I haven't checked for them either.

That is understandable.

> If you can see what broke, let me know.

I will try to find out and I will let you know if I succeed.


On Mon, Aug 20, 2018 at 9:46 PM, Henry Rich <[email protected]> wrote:

> I haven't intentionally removed support for any nonstandard features, but
> I haven't checked for them either.  If you can see what broke, let me know.
>
> Henry Rich
>
>
> On 8/20/2018 7:40 PM, Jose Mario Quintana wrote:
>
>> In the related thread "[Jprogramming] Applying an adverb to a list/gerund
>> of verbs" (see the trailing post) Pascal wrote:
>>
>> Thank you Jose,
>>>
>> You are welcome Pascal (feel free to call me Pepe which is Jose's
>> nickname).
>>
>>
>> Would you by any chance have figured out a way to make AR tacit?
>>> *: AR is so much easier to "call"/type than ar '*:'
>>> (`'')  almost works, though "fails" with nouns, but is useful for an
>>>
>> argument that can be verb or gerund.
>>
>> I had not produced a tacit version of AR because, personally, I did not
>> have the need despite the fact that I use the atomic representation (ar)
>> of
>> words  (nouns, verbs, adverbs, and conjunctions)  directly from time to
>> time.  (Why I do not need a tacit AR?  More on that later).  I will
>> mention
>> some things, which I am sure you know, for the potential benefit of other
>> members of the forum.  As usual, one could always go the hard orthodox way
>> (in principle, at least).  However, I like the easy wicked way because I
>> am
>> naturally lazy.
>>
>> First a word of caution, the wicked way relies on an apparent internal
>> design architecture feature of the J interpreters ( which treats J words
>> the same in a fairly general sense) to perform illegal operations; this
>> makes possible to produce any kind of adverb in a tacit form, including
>> verb producing adverbs that refer (tacitly, of course) to the arguments of
>> the verbs produced.
>>
>> I have followed the wicked way for several years using different versions
>> of J interpreters; but, as Martin Nietzel put it recently "We are in
>> twisty
>> little maze of J versions, all alike."  I have noticed a slight erosion of
>> the aforementioned feature in the J805 and j06 interpreters.  A more
>> significant deterioration happened from J807 beta-e to beta-g.  The J804,
>> J805, J805 and J807 beta-e interpreters just bend and comply while running
>> the J Wicked Toolkit script [0]; in contrast, the J807 beta-g interpreter
>> snaps.  Likely, the wicked way will be somewhat compromised in future
>> official stable versions of the interpreter.  Perhaps, the wicked way will
>> be banned altogether and no black magic will be allowed.  (It is black
>> magic in J but it is white magic in many other programming languages that
>> embrace higher-order functions).
>>
>> The above notwithstanding, what follows runs fine even on the J807 beta-g
>> interpreter.
>>
>> Henceforth I am assuming that the sentences of the post below, up to the
>> production of AR, have been run: that is,
>>
>>    (9!:3) 5 2  NB. Box and linear representations...
>> .
>> .
>> .
>>    AR=: 1 : '5!:1 <''u'''
>>
>> We can begin with the simple case when the argument of AR is noun,
>>
>> D=. 5!:0 NB. DoJ: Define. 5!:0 is an adverb and provides a complete
>> inverse
>> of 5!:1. ( T=. i.2 3 ) 0 1 2 3 4 5 ar'T' ┌─────────┐ │┌─┬─────┐│ ││0│0 1
>> 2││ ││ │3 4 5││ │└─┴─────┘│ └─────────┘ (ar'T') D 0 1 2 3 4 5
>>
>> A tacit version of AR is,
>>
>> ART=. an f.adv T ART ┌─────────┐ │┌─┬─────┐│ ││0│0 1 2││ ││ │3 4 5││
>> │└─┴─────┘│ └─────────┘ (i.2 3) ART ┌─────────┐ │┌─┬─────┐│ ││0│0 1 2││ ││
>> │3 4 5││ │└─┴─────┘│ └─────────┘ (i.2 3) ART D 0 1 2 3 4 5
>>
>> Of course, if the argument of ART is a verb then we will need something
>> more elaborated...  Actually, that is not necessarily the case!  For
>> instance,
>>
>> +/@:*: ART
>>
>> ┌──────────┐
>>
>> │┌─┬──────┐│
>>
>> ││0│+/@:*:││
>>
>> │└─┴──────┘│
>>
>> └──────────┘
>>
>>
>> is an illegal noun; yet, as far as the interpreter is concerned, it is an
>> ar of +/@:*:
>>
>>
>>     +/@:*: ART D
>> +/@:*:
>> ┌─────┬──┬──┐
>> │┌─┬─┐│@:│*:│
>> ││+│/││  │  │
>> │└─┴─┘│  │  │
>> └─────┴──┴──┘
>>
>> and it can be used, as a whole, in place of the actual ar (not tested it
>> much with the beta interpreters); for example,
>>
>>
>> (+/@:*: ART`:6) 1 2 3 14
>>
>> There are instances where one might require the real thing for internal
>> inspection and modification of a verb structure (for example, to replace
>> the all its components of the form [: u v by (u@:v)).
>>
>>
>> In that case, the following version should work,
>>
>>     tie=.   (<'`') (0:`)(,^:)
>>
>>     ART=. (an`('' $ '' tie~ ]))@.(2097152 = 3!:0) adv
>>
>> (use 262144 instead of 2097152 for earlier versions of the interpreter if
>> necessary); for  example,
>>
>>     (i.2 3) ART
>> ┌─────────┐
>> │┌─┬─────┐│
>> ││0│0 1 2││
>> ││ │3 4 5││
>> │└─┴─────┘│
>> └─────────┘
>>
>>     u@:v AR
>> ┌──────────┐
>> │┌──┬─────┐│
>> ││@:│┌─┬─┐││
>> ││  ││u│v│││
>> ││  │└─┴─┘││
>> │└──┴─────┘│
>> └──────────┘
>>
>>     u@:v ART D
>> u@:v
>> ┌─┬──┬─┐
>> │u│@:│v│
>> └─┴──┴─┘
>>
>>     (toCRLF f.ART) -: (toCRLF f.AR)
>> 1
>>
>> By the way, the gerundial representation produced by (`'') technically is
>> not an ar; for example,
>>
>>     u@:v (`'') D
>> |rank error: D
>> |   u@:v(`'')    D
>>
>> PS.  I had not produced ART before because I have access to a custom
>> foreign which allows to use verbs that require named words (e.g. (4!:0),
>> (5!:1), (5!:2), etc.) namelessly.
>>
>> Reference
>>
>> [0] J Wicked Toolkit
>>      http://www.2bestsystems.com/foundation/j/Jx.zip
>>      \Jx\J\J Wicked Toolkit.ijs
>>
>>
>>
>>
>>
>> On Thu, Aug 16, 2018 at 11:21 PM, 'Pascal Jasmin' via Programming <
>> [email protected]> wrote:
>>
>>   Thank you Jose,
>>> Would you by any chance have figured out a way to make AR tacit?
>>> *: AR is so much easier to "call"/type than ar '*:'
>>> (`'')  almost works, though "fails" with nouns, but is useful for an
>>> argument that can be verb or gerund.
>>>      On Thursday, August 16, 2018, 7:48:47 p.m. EDT, Jose Mario Quintana
>>> <
>>> [email protected]> wrote:
>>>
>>>   One the one hand, I find your adverb neat and clever.  On the other
>>> hand,
>>> I
>>> like them beautiful and powerful.  ;)
>>>
>>> Powerful?
>>>
>>>    (9!:3) 5 2  NB. Box and linear representations...
>>>
>>>
>>>    o=. @:
>>>    c=. "_
>>>
>>>    ar=. 5!:1@:<
>>>    an=.  <@:((,'0') ,&:< ])f.  NB. Atomizing (monadic verb)
>>>
>>>    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
>>>
>>>    train=. (<'`:') (0:`)(,^:)&6
>>>    fix=.  (<'f.') (0:`)(,^:)
>>>
>>>    af=. an o fix f. NB. Atomizing after fixing a word (monadic verb)
>>>    aw=. < o ((0;1;0)&{::)  NB. Fetching the atomic representation
>>> (monadic
>>> verb)
>>>    a3=. (o (train o aw f.)) ('av'f.)
>>>      NB. train o aw  gets the (noun or verb) argument
>>>
>>>    adv=. train o ((af'c') ; ] ; (af'a3')c) f.av
>>>
>>> The motivation for producing the tacit adverb adv was to reduce directly
>>> the production of tacit adverbs to the production of tacit verbs,
>>>
>>>    ag=. (0:`)(,^:) (<@:) (@:(train f.))("0) (train f.@:([ ; (,<,',') ;
>>> ])&>/@:)
>>>
>>>    A=. @:]
>>>
>>>    Ad=. ag adv
>>>
>>>    v1`v2`v3`v4 (ar'A')Ad
>>> v1@:] , v2@:] , v3@:] , v4@:]
>>> ┌─────────┬─┬─────────────────────────────────────┐
>>> │┌──┬──┬─┐│,│┌─────────┬─┬───────────────────────┐│
>>> ││v1│@:│]││ ││┌──┬──┬─┐│,│┌─────────┬─┬─────────┐││
>>> │└──┴──┴─┘│ │││v2│@:│]││ ││┌──┬──┬─┐│,│┌──┬──┬─┐│││
>>> │        │ ││└──┴──┴─┘│ │││v3│@:│]││ ││v4│@:│]││││
>>> │        │ ││        │ ││└──┴──┴─┘│ │└──┴──┴─┘│││
>>> │        │ ││        │ │└─────────┴─┴─────────┘││
>>> │        │ │└─────────┴─┴───────────────────────┘│
>>> └─────────┴─┴─────────────────────────────────────┘
>>>
>>>    AR=: 1 : '5!:1 <''u'''
>>>    advE =: 1 : 'AR(u`)(`:6)'
>>>
>>>    AdE=. ag advE
>>>
>>>    v1`v2`v3`v4 (ar'A')AdE
>>> v1@:] , v2@:] , v3@:] , v4@:]
>>> ┌─────────┬─┬─────────────────────────────────────┐
>>> │┌──┬──┬─┐│,│┌─────────┬─┬───────────────────────┐│
>>> ││v1│@:│]││ ││┌──┬──┬─┐│,│┌─────────┬─┬─────────┐││
>>> │└──┴──┴─┘│ │││v2│@:│]││ ││┌──┬──┬─┐│,│┌──┬──┬─┐│││
>>> │        │ ││└──┴──┴─┘│
>>> <https://maps.google.com/?q=%E2%94%82+&entry=gmail&source=g>│││v3│@:│]││
>>> ││v4│@:│]││││
>>> │        │ ││        │ ││└──┴──┴─┘│ │└──┴──┴─┘│││
>>> │        │ ││        │ │└─────────┴─┴─────────┘││
>>> │        │ │└─────────┴─┴───────────────────────┘│
>>> └─────────┴─┴─────────────────────────────────────┘
>>>
>>> (By the way, you might appreciate that both adv and advE, in this
>>> context,
>>> are acting as triple (Curried) adverbs.)
>>>
>>> The end result is the same; however, one important difference is that
>>> (ar'A')Ad is tacit but (ar'A')Ad is not (because AR is not tacit).
>>> Recall,
>>> Piet Google was asking for "a (tacit) way to apply an adverb to each of a
>>> list of verbs."
>>>
>>> Furthermore, adv has the implicit tacit power (provided by (0:`)(,^:)) to
>>> perform forbidden
>>> <https://maps.google.com/?q=m+forbidden&entry=gmail&source=g> tricks
>>> that advE cannot; adv actually applies its
>>> argument verb to the argument of the resulting adverb even if that
>>> argument
>>> happens to be a verb; for example,
>>>
>>>    *: <adv
>>> ┌──┐
>>> │*:│
>>> └──┘
>>>
>>> boxes *:,
>>>
>>>    > *: <adv 1 2 3
>>> 1 4 9
>>>
>>> In contrast,
>>>
>>>    *: <advE
>>> < *:
>>> ┌─┬──┐
>>> │<│*:│
>>> └─┴──┘
>>>    > *: <advE 1 2 3
>>> 0 1 1
>>>
>>>
>>> On Thu, Aug 16, 2018 at 3:11 PM, 'Pascal Jasmin' via Programming <
>>> [email protected]> wrote:
>>>
>>>   A simpler version of your usual adv definition, that seems pretty clean
>>>> (without my usual processing)
>>>>
>>>> AR=: 1 : '5!:1 <''u'''
>>>> adv =: 1 : 'AR(u`)(`:6)'
>>>>
>>>>
>>>>   1 2 3 *: adv
>>>>
>>>> 1 4 9
>>>>
>>>> not sure if this works with all your utilities.
>>>>
>>>
>>> ----------------------------------------------------------------------
>> 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

Reply via email to