I'll add that the fairly recent change of u@n being a constant verb for n is 
very positive.

Of the approaches I suggested for defining the adverb, the first I prefer.

expecting an adverb to always return a verb is more user friendly than deciding 
for them.

(>:@1) 3

2

is good behaviour if the user passes 1 as adverb parameter to (>:@)

1 (>:@)

>:@1

Returning a constant verb when provided with a constant or "dynamic" ambivalent 
(monad+dyad flexibility) execution when provided with a verb is design that 
will result in fewer edge cases (bugs) when combined with other adverbs that 
expect, or more importantly, return verbs that tend to be expected by other 
modifiers.

So. polymorphic return word types from a modifier are design deficient compared 
to single word types return. Especially considering that a constant verb 
provides a user intuitive way of obtaining the constant result with the 
flexibility of using any verb to create a word phrase that can be further 
processed by modifiers with fewer assumptions about word types.

On a side note, if [:y returned y, there would be additional flexibility in 
constructing the polymorphic modifier in the form (where ti is ` but turns 
nouns into gerunds) of {{([: ti >: ti u)(`:6)}}


On Tuesday, July 19, 2022 at 12:26:47 p.m. EDT, 'Pascal Jasmin' via Programming 
<programm...@jsoftware.com> wrote: 





some options,

if you want your adverb to always produce a verb:

 1 (>:@)

>:@1

1 (>:@) 4

2  NB. increment  on constant of 1 (u/m parameter)

  +: (>:@) 4

9  NB. increment after applying u (double) to y


if you want "polymorphism" in your adverb to return noun result or verb 
depending on u or m,


isNoun =: (0 = 4!:0 ::0:)@:<

1 {{if. isNoun 'u' do. >: m else. >:@u end.}}

2

+ {{if. isNoun 'u' do. >: m else. >:@u end.}}

>:@+

2 + {{if. isNoun 'u' do. >: m else. >:@u end.}}3

6



On Monday, July 18, 2022 at 04:03:40 a.m. EDT, Jacques Bailhache 
<jacques.bailha...@gmail.com> wrote: 





I define an adverb which gives the successor of its argument :

  advsuc =: 1 : '>: u'
  1 advsuc
2

Then I define an adverb which applies its argument to 1 :

  applyto1 =: 1 : '1 u'

Then I apply it to the adverbial successor :

  advsuc applyto1
advsuc applyto1

Why isn't it evaluated to 2 ?
----------------------------------------------------------------------
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