nn is an adverb that lets the passed in verb access x and y.
{{1 (,y#x)} y}}
1:`(,@#~)`]}
but its not an obviously useful verb
2 (,@#~) i.3
2 2 2
this is just going to amend the x index multiple times.
2 1:`(,@#~)`]} i.3
0 1 1
On Thursday, December 23, 2021, 03:05:45 a.m. EST, Elijah Stone
<[email protected]> wrote:
I am not sure quite what you are getting at. (And I do not understand the
difference between nn and ]:, unless it is to do with namespacing?)
Here is a verb I wrote recently that I would like to be able to make
tacit: {{1 (,y#x)} y}}
It can be written as a tacit conjunction, but I would prefer the explicit
verb, as verbs are easier to compose. (And in this particular instance,
it was taken to a fixedpoint, so a conjunction would not work at all.)
-E
On Wed, 22 Dec 2021, 'Pascal Jasmin' via Programming wrote:
>
> This seems to work as a general approach?
>
> nn =. 1 : 'x u y'
>
> The new-old trains cover pretty completely your use scenarios
> ACC
> CCA
> VCC
> CCV
> VCA
> ACV
>
> 5 ([ 2 : 'u+v' -nn + ]) 3
>
> 10
>
> 5 ([ 2 : 'u+v' -@]nn + ]) 3
>
> 5
>
>
> or with my compound modifier train framework
>
> 5 [ +F1 -nn +F ] 3
>
> 10
>
>
> On Tuesday, December 21, 2021, 11:53:05 p.m. EST, 'Pascal Jasmin' via
> Programming <[email protected]> wrote:
>
>
>
>
>
>>>
> x] u C (v n.) y
> [x] u C ([x] v y) y
>
> [x] u n. C v y
> [x] ([x] u y) C v y
>
> [x] u n. A y
> [x] ([x] u y) A y
>
>
> you want n. to "dig through" the function to calculate a result using xy
> before passing it to modifier without consuming/removing the xy arguments.
>
> For a specific (CA in your examples) modifier, this is easy as an explicit
> definition.
>
> For a general function, you need to access x and y, and explicit seems like
> the best bet with passing in a representation of the modifier.
>
>
>
> On Tuesday, December 21, 2021, 09:24:58 p.m. EST, Elijah Stone
> <[email protected]> wrote:
>
>
>
>
>
> With all this discussion of tacit modifiers, I fear their lower-order
> cousins are going out of style!
>
> The proof of completeness for trains
> (https://code.jsoftware.com/wiki/Essays/Trains#Proof_of_Completeness)
> contains two concerning notes:
>
>> Without loss of generality, assume that [sentence] s contains no
>> copulae; for if it does, d=.rhs (say), recursively replace instances of
>> d by (rhs)
>
> This transformation is problematic if rhs performs side effects; for it
> may cause those effects to be performed more than once, or not at all; or
> to be sequenced differently relatively to other side effects.
>
> In some cases, it may nevertheless possible to straightforwardly express
> an effectful verb tacitly. For instance:
>
> {{ a=. 0 [ echo y
> a + y + a }}
>
> becomes:
>
> (] + [ + ]) (0 [ echo)
>
> but some are not so straightforward
>
> {{ a=. 0 [ echo y
> b=. 0 [ echo y
> a + b + y + a + b }}
>
> It can be done, of course, but not without cheating (e.g. by using boxes,
> or by observing that + is commutative).
>
> Question: what is a clear and concise definition of the subset of
> effectful explicit verbs which may be made tacit without cheating?
>
>
>> Suppose s is a sentence [that] makes no use of x. or y. as arguments to
>> an adverb or conjunction
>
> A shame; on multiple occasions, I have wanted to do exactly this, and have
> had to write explicit code. (In some cases, it is possible to get around
> the problem by passing a gerund to the conjunction; but that is not
> general; it is somewhat obscure; and frequently requires redundant [ or ].)
>
> Suggestion: a new primitive adverb. Call it 'n.'. Like [:, it is
> syntactically regular, but semantically irregular. Just as there is a
> rule for the evaluation of forks whose left tines are [: which takes
> precedence over the regular rule for the evaluation of forks, so are there
> rules for the evaluation of sentences containing n. which take precedence
> over the rules for evaluation of ordinary sentences:
>
> [x] u C (v n.) y
> [x] u C ([x] v y) y
>
> [x] u n. C v y
> [x] ([x] u y) C v y
>
> [x] u n. A y
> [x] ([x] u y) A y
>
> Objections:
>
> - n. assumes that modifiers return verbs. Something like 'u n. A'
> _must_ be assumed to be a verb for this mechanism to make any sense.
> Evaluation of A must be deferred, which is even more irregular than [:.
>
> - The common case of u C (f y) requires many parentheses if the input is
> modified by a train: u C ((f g h)n.). (On the other hand, this is no
> worse than the explicit code, which must write u C ((f g h) y).
> NARS2000 suggests a mitigation in the form of higher-order modifiers:
> assuming a higher-order ~, one might write (f g h)n. ~C u. This is not
> a serious suggestion.)
>
> -E
> ----------------------------------------------------------------------
> 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