temp=: 2 : 0
        [: (v^:_1@(4 : 'y`:6  >x')"0 m $~ $) <@v
)

atop=: 2 : 'm temp (v :. ])'

under=: 2 : 0
        m temp v : ([: (v^:_1@(4 : 'y`:6&>/x')"0 m $~ $) ,&<&v)
)

compose=: 2 : 'm under (v :. ])'

rank=:  2 : 'm atop (]"n)'

‘rank’ is “ as Henry suggested for gerunds, and I propose extending
this behaviour to @, &, and &. as described above as well.

In particular,
v0`v1`…`vi under >    <->   v0@(0{::]) ; v1@(1{::]) ; … ; vi(i{::]) extended 
cyclically:

   M=: i.3 4 5
   (,:  -`j. under >) ;/M
┌───────────────────┬────────────────────────┬───────────────────┐
│ 0  1  2  3  4     │20 21 22 23 24          │40 41 42 43 44     │
│ 5  6  7  8  9     │25 26 27 28 29          │45 46 47 48 49     │
│10 11 12 13 14     │30 31 32 33 34          │50 51 52 53 54     │
│15 16 17 18 19     │35 36 37 38 39          │55 56 57 58 59     │
├───────────────────┼────────────────────────┼───────────────────┤
│  0  _1  _2  _3  _4│0j20 0j21 0j22 0j23 0j24│_40 _41 _42 _43 _44│
│ _5  _6  _7  _8  _9│0j25 0j26 0j27 0j28 0j29│_45 _46 _47 _48 _49│
│_10 _11 _12 _13 _14│0j30 0j31 0j32 0j33 0j34│_50 _51 _52 _53 _54│
│_15 _16 _17 _18 _19│0j35 0j36 0j37 0j38 0j39│_55 _56 _57 _58 _59│
└───────────────────┴────────────────────────┴───────────────────┘
   
Louis

> On 06 Aug 2017, at 19:31, Jose Mario Quintana <jose.mario.quint...@gmail.com> 
> wrote:
> 
> "
> On my wish list would be something similar for the “each" adverb. While 
> writing
> tacit code I very often find myself  writing
> 
>        u@(0{::]) ; v@:(1{::]) etc.
> "
> 
> Louis, I find the points you raised very interesting and they might
> influence Jx v1.1.
> 
> Meanwhile, if you really very often would like to produce,
> 
> v0@(0{::]) ; v1@:(1{::]) ; v2@:(1{::]) ...
> 
> given v0, v1, v2, ...  You could write an (explicit?) adverb, Each for
> instance, such that, for example,
> 
>   v0`v1`v2`v3 Edge
> v0@:(0&({::)) ; v1@:(1&({::)) ; v2@:(2&({::)) ; v3@:(3&({::))
> 
> I prefer, of course,
> 
>   [: v0 v1 v2 v3 Each
> v0@:(0&({::)) ; v1@:(1&({::)) ; v2@:(2&({::)) ; v3@:(3&({::))
> 
> It was very easy to write  Each  tacitly in Jx particularly because I had
> seen similar patterns before.  If you need often the cyclical feature then
> I would expect it to be a matter of adding a minor complication.
> 
> Do you really need the cyclical feature?
> 
> You might also like to read the oblique (/.) entry in the Dictionary and
> other sources; it could help.
> 
> 
> On Fri, Aug 4, 2017 at 1:03 AM, Louis de Forcrand <ol...@bluewin.ch> wrote:
> 
>> I quite like this idea. It’s unfortunate that m”n was previously defined
>> differently,
>> but as you say conflicts would probably be nonexistent, and I’ve often
>> wanted
>> to apply one verb to the first element of an array, another to the second,
>> etc.
>> 
>> On my wish list would be something similar for the “each" adverb. While
>> writing tacit code I very often find myself writing
>> 
>>        u@(0{::]) ; v@:(1{::]) etc.
>> 
>> and the readability / terseness of
>> 
>>        u`v&.>
>> 
>> would be valuable IMO (albeit perhaps not easy to incorporate correctly
>> into the language).
>> 
>> 
>> I was just about to send this email, but then I thought of this:
>> 
>> For adverbs / conjunctions like @, &, or &. which depend on the rank of
>> their right argument (unlike @:, &:, &.:), a gerund left argument could be
>> extended cyclically over each item of the right argument’s result. Not only
>> would that check one item off my wish list, but if gerund m in m”n proves
>> to
>> be unacceptable, it could be replaced by
>> 
>>        m@(]”n)
>> 
>> This would create no incompatibilities apart from code relying on errors
>> thrown by those operators.
>> 
>> Louis
>> 
>>> On 03 Aug 2017, at 01:51, Henry Rich <henryhr...@gmail.com> wrote:
>>> 
>>> The argument for gerund"n is this:
>>> 
>>> All partitioning modifiers (/. / ;.n etc,) support cyclic gerunds.  The
>>> anomalous case is " which is the most basic partitioning modifier of all.
>>> It should have been defined to support cyclic gerunds.
>>> 
>>> The proposal is to put it right without breaking any code.  m"n when m
>>> resembles a gerund and n is not _ will be very rare, perhaps nonexistent,
>>> in actual code.  For new code, m"_"n will work for any n.
>>> 
>>> Henry Rich
>>> 
>>> On Thu, Aug 3, 2017 at 3:07 AM, 'Pascal Jasmin' via Programming <
>>> programm...@jsoftware.com> wrote:
>>> 
>>>> the best solution I've seen,
>>>> 
>>>> 
>>>> isgerund =: 0:`(0 -.@e. 3 : ('y (5!:0)';'1')"0)@.(0 < L.) :: 0:
>>>> 
>>>> 
>>>> tests that each "box" can be passed to 5!:0 without error.
>>>> 
>>>> ________________________________
>>>> From: Bill <bbill....@gmail.com>
>>>> To: "programm...@jsoftware.com" <programm...@jsoftware.com>
>>>> Sent: Wednesday, August 2, 2017 9:01 PM
>>>> Subject: Re: [Jprogramming] Jx version 1.0 release
>>>> 
>>>> 
>>>> 
>>>> J interpreter must know when a noun is a gerund, so is it possible to
>> add
>>>> a new primitive to test for gerund? Or is there already J script to test
>>>> for gerund?
>>>> 
>>>> Sent from my iPhone
>>>> 
>>>> On 3 Aug, 2017, at 3:36 AM, Henry Rich <henryhr...@gmail.com> wrote:
>>>> 
>>>>> I expect to make some more improvements to dyad u"n, and eventually to
>>>>> rewrite the monad to match the dyad.  My availability to work on this
>>>> will
>>>>> be intermittent for a while.  The 8.06 code as is works, and fixes a
>>>>> long-standing bug reported by Martin Neitzel.
>>>>> 
>>>>> I have suggested using m"n, where n is not _, to implement a cyclic
>>>> gerund
>>>>> m.  If m doesn't look like a gerund, it would be treated as a simple
>>>> noun.
>>>>> While this is not strictly compatible, I think it very unlikely that it
>>>>> would break any existing code.  I think m"n was wrongly defined and
>> that
>>>>> this is the correct definition.  My opinion is not universally shared
>> so
>>>> I
>>>>> haven't acted on it.
>>>>> 
>>>>> Henry Rich
>>>>> 
>>>>> On Wed, Aug 2, 2017 at 5:03 PM, Thomas Costigliola <fo...@iocane.net>
>>>> wrote:
>>>>> 
>>>>>> You can try removing the conditional statement enclosing that line,
>> but
>>>>>> for now I would say the patch is broken under Clang. Since the rank
>> code
>>>>>> was completely rewritten in J805 and J806 and ":: is based on the J804
>>>> rank
>>>>>> with some unfinished updates Henry was working on, the real solution
>> is
>>>> to
>>>>>> rewrite ":: based on the new rank code. But that should wait until the
>>>> code
>>>>>> is stable. Does anyone anticipate more changes?
>>>>>> 
>>>>>> On a more philosophical note, ":: implements gerund left arguments
>> that
>>>>>> apply to the items cyclically. The reason for adding a new primitive
>> and
>>>>>> not extending ": is because it breaks using ": to define constant
>>>>>> functions. If someone has any ideas to make them play nicely together
>>>> then
>>>>>> they can be merged into a single primitive. The issue is that there is
>>>> no
>>>>>> distinction between a noun and gerund.
>>>>>> 
>>>>>> Regards,
>>>>>> -Thomas
>>>>>> 
>>>>>> 
>>>>>> On 08/02/2017 11:52 AM, bill lam wrote:
>>>>>> 
>>>>>>> Yes, I use Clang and have -Werror -Wextra in CFLAGS.
>>>>>>> Sometimes vs2013 is much less tolerant.
>>>>>>> 
>>>>>>> Ср, 02 авг 2017, Thomas Costigliola написал(а):
>>>>>>> 
>>>>>>>> That looks like Henry's code taken from cr.c at some older version.
>> It
>>>>>>>> compiles fine for me in GCC and Visual Studio 2013. It is in the
>>>>>>>> implementation of "::, which seems to be working in my tests, so
>> that
>>>>>>>> code
>>>>>>>> never gets hit. Are you using Clang? It's much less tolerant of code
>>>> like
>>>>>>>> that.
>>>>>>>> 
>>>>>>>> Regards,
>>>>>>>> -Thomas
>>>>>>>> 
>>>>>>>> On 08/02/2017 11:21 AM, bill lam wrote:
>>>>>>>> 
>>>>>>>>> When I tried to compile, but this line in best.c failed.
>>>>>>>>> 
>>>>>>>>>  *((I*)0)=0;  // scaf
>>>>>>>>> 
>>>>>>>>> and I can not understand its intention, access to memory
>>>>>>>>> address 0 should cause segfault.
>>>>>>>>> 
>>>>>>>>> Вт, 01 авг 2017, Jose Mario Quintana написал(а):
>>>>>>>>> 
>>>>>>>>>> A brief description of the Jx v1.0 extensions, together with links
>>>> to a
>>>>>>>>>> Windows 64 bit dll, a Unix 64 bit so binaries and the patch
>>>>>>>>>> corresponding
>>>>>>>>>> to the J806 source can be found at,
>>>>>>>>>> http://www.2bestsystems.com/foundation/j/jx1
>>>>>>>>>> 
>>>>>>>>>> Summary
>>>>>>>>>> 
>>>>>>>>>> - Spelling
>>>>>>>>>>  - Names with unicode characters
>>>>>>>>>>  - Primitives
>>>>>>>>>>      Added     =.. =:: $:: [. ]. ]: ".. ":: `. ?: i.. O.
>>>>>>>>>>      Extended  ~ $.
>>>>>>>>>>  - Foreign
>>>>>>>>>>      Added     104!:5 Unnamed Execution
>>>>>>>>>> 
>>>>>>>>>> - Trains
>>>>>>>>>>    a v    Added       (different from Jx v0)
>>>>>>>>>>    a a    Extended    (different from Jx v0)
>>>>>>>>>>    c a    Resurrected
>>>>>>>>>>    a c a  Resurrected
>>>>>>>>>> 
>>>>>>>>>> The Jx v0 page,
>>>>>>>>>> http://www.2bestsystems.com/foundation/j/jx0
>>>>>>>>>> will be removed in the near future
>>>>>>>>>> 
>>>>>>>>>> Time permitting, there will be soon a script with assertions for
>>>> those
>>>>>>>>>> who
>>>>>>>>>> want to verify binaries targeted for other platforms and I will
>> try
>>>> to
>>>>>>>>>> illustrate the facilities in action with some scripts.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On Sat, Mar 8, 2014 at 11:40 PM, Jose Mario Quintana <
>>>>>>>>>> jose.mario.quint...@gmail.com> wrote:
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> The patches, a Windows 32-bit DLL, a cheatsheet, 32 and 64 bit
>> Unix
>>>>>>>>>>> libraries are found at:
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> http://www.2bestsystems.com/foundation/j/
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> For more details and demonstration code, see the article in the
>>>>>>>>>>> Journal of
>>>>>>>>>>> J: http://journalofj.com/index.php/vol-2-no-2-october-2013 (only
>>>> the
>>>>>>>>>>> definition of the new conjunction knot (`.) has been slightly
>>>>>>>>>>> modified for
>>>>>>>>>>> the release).
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> ------------------------------------------------------------
>>>>>>>>>> ----------
>>>>>>>>>> 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/forum
>> s.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
>> 
>> ----------------------------------------------------------------------
>> 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