Mike (you can call me Pepe as well),

The relevant test is,


   < o train"0 (0&{)`(1&{)`(2&{)
┌───┬───┬───┐
│0&{│1&{│2&{│
└───┴───┴───┘


That is, this sentence produces (illegally :) ) a noun made of boxed
verbs.  My guess is that you had predefined N, A or B as a noun(s).  Try
running the script on a fresh session or erase N, A, and B beforehand.  A
clean script, with a simplified version of hyper, follows for your
convenience (I always type =. instead of =: because it is easier and run
the script from an editing window with Ctrl-a, Ctrl-e),


JVERSION

o=. @:
K=. <;:'&*'
U=. <(<,'&'),<<(":0);1

ku=. K , U ($~) 2 -~ ]

train=. (<'`:')(0:`)(,^:)&6  NB. For compatibility with an official J
an=. <@:((,'0') ,&< ])

erase'N A B'
(N`A`B)=. < o train"0 (0&{)`(1&{)`(2&{)

hyper=. train o ( (an o x: o A , ku o N) , an o B )f.

hyper 2 2 3  NB. 2 * 3
hyper 3 3 2  NB. 3 ^ 2
hyper 4 2 5  NB. Tetration
# ": hyper 4 2 5
hyper 5 3 2  NB. Pentation
hyper 6 1 9  NB. Etc.

hyper

I hope it helps.



On Sat, Nov 21, 2015 at 5:12 AM, Mike Day <[email protected]>
wrote:

> Oops^2   !?
>
> I copied Jose's code (further below) to my temporary
> script looking at this topic.  Loading the script
> failed as shown.  Not my style of programming,  so
> I don't see what's wrong in this extract the session:
>
> (sorry, but line feeds will probably double...)
>
>     JVERSION
>
> Engine: j804/2015-09-19 10:06:31
>
> Library: 8.04.13
>
> Qt IDE: 1.4.6/5.4.2
>
> Platform: Win 64
>
> Installer: J804 install
>
> InstallPath: c:/d/j804
>
>
> load 'c:/d/j804/user/temp/74.ijs'
>
> |length error: script
>
> | (N`A`B) =:<o train"0(0&{)`(1&{)`(2&{)
>
> |[-109] c:\d\j804\user\temp\74.ijs
>
>    train
>
> (,^:((0:)``:))&6
>
>
>    train"0 (0&{)`(1&{)`(2&{)
>
> 0&{
>
>
> Obvious differences from Jose:  J804 not 803,
> installer not shown above,  but I think it's
> j804_win64.exe,  September 15.
>
> Thanks,
>
> Mike
>
>
> On 20/11/2015 20:50, Jose Mario Quintana wrote:
>
>> Ups!  I meant to run the script on an official version but I ended up
>> using
>> a Jx interpreter.  Anyway, it runs on an official J interpreter:
>>
>>     JVERSION
>> Installer: j602a_win.exe
>> Engine: j803/2014-10-19-11:11:11
>> Library: 6.02.023
>>
>>     o=. @:
>>     K=. <;:'&*'
>>     U=. <(<,'&'),<<(":0);1
>>
>>     ku=. K , U ($~) 2 -~ ]
>>
>>     train=. (<'`:')(0:`)(,^:)&6  NB. For compatibility with an official J
>>     an=. <@:((,'0') ,&< ])
>>
>>     (N`A`B)=. < o train"0 (0&{)`(1&{)`(2&{)
>>
>>     hyper=. train o ( ((an o x: o A) < o train o ,(ku o N)) , an o B )f.
>>
>>     hyper 2 2 3  NB. 2 * 3
>> 6
>>     hyper 3 3 2  NB. 3 ^ 2
>> 9
>>     hyper 4 2 5  NB. Tetration
>>
>> 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156...
>>     # ": hyper 4 2 5
>> 19729
>>     hyper 5 3 2  NB. Pentation
>> 7625597484987
>>     hyper 6 1 9  NB. Etc.
>> 1
>>
>>     hyper
>> ,^:(0:``:)&6@:((<@:((,'0') ,&< ])@:x:@:(1&{) <@:(,^:(0:``:)&6)@:,
>> ((<;:'&*') , (<(<,'&'),<<(,'0');1) $~ 2 -~ ])@:(0&{)) , <@:((,'0') ,&<
>> ])@:(2&{))
>>
>>
>>
>>
>>
>> On Fri, Nov 20, 2015 at 3:23 PM, Jose Mario Quintana <
>> [email protected]> wrote:
>>
>> This is a verb for performing hyper operations:
>>>
>>>     JVERSION
>>>
>>> Engine: j701/2012-12-06/12:20/x
>>>
>>> Library: 8.03.14
>>>
>>> Qt IDE: 1.3.1/5.3.2
>>>
>>> Platform: Win 64
>>>
>>> Installer: J803 install
>>>
>>> InstallPath: f:/j64-803
>>>
>>> o=. @:
>>>
>>> K=. <;:'&*'
>>>
>>> U=. <(<,'&'),<<(":0);1
>>>
>>> ku=. K , U ($~) 2 -~ ]
>>>
>>> train=. (<'`:')(0:`)(,^:)&6 NB. For compatibility with an official J
>>>
>>> an=. <@:((,'0') ,&< ])
>>>
>>> (N`A`B)=. < o train"0 (0&{)`(1&{)`(2&{)
>>>
>>> hyper=. train o ( ((an o x: o A) < o train o ,(ku o N)) , an o B )f.
>>>
>>> hyper 2 2 3 NB. 2 * 3
>>>
>>> 6
>>>
>>> hyper 3 3 2 NB. 3 ^ 2
>>>
>>> 9
>>>
>>> hyper 4 2 5 NB. Tetration
>>>
>>>
>>>
>>> 2003529930406846464979072351560255750447825475569751419265016973710894059556311453089506130880933348101038234342907263181822949382118812668869506364761547029165041871916351587966347219442930927982084309104855990570159318959639524863372367203002916969592156108764948889254090805911457037675208500206671563702366126359747144807111774815880914135742720967190151836282560618091458852699826141425030123391108273603843767876449043205960379124490905707560314035076162562476031863793126484703743782954975613770981604614413308692118102485959152380195331030292162800160568670105651646750568038741529463842244845292537361442533614373729088303794601274724958414864915930647252015155693922628180691650796381064132275307267143998158508811292628901134237782705567421080070065283963322155077831214288551675554073345107213112427399562982719769150054883905223804357045848197956393157853510018992000024141963706813559840464039472194016069517690156119726982337890017641517190051133466306898140219383481435426387306539552969691388024158161859561...
>>>
>>> # ": hyper 4 2 5
>>>
>>> 19729
>>>
>>> hyper 5 3 2 NB. Pentation
>>>
>>> 7625597484987
>>>
>>> hyper 6 1 9 NB. Etc.
>>>
>>> 1
>>>
>>> hyper
>>>
>>> ,^:(0:``:)&6@:((<@:((,'0') ,&< ])@:x:@:(1&{) <@:(,^:(0:``:)&6)@:,
>>> ((<;:'&*') , (<(<,'&'),<<(,'0');1) $~ 2 -~ ])@:(0&{)) , <@:((,'0') ,&<
>>> ])@:(2&{))
>>>
>>>
>>> I would left a gramatically correct version as an exercise ;)
>>>
>>>
>>>
>>>
>>> On Fri, Nov 20, 2015 at 10:31 AM, Jose Mario Quintana <
>>> [email protected]> wrote:
>>>
>>> Dan,
>>>>
>>>> Check out the message:
>>>> http://www.jsoftware.com/pipermail/programming/2015-February/041095.html
>>>> for  one easy way to play with Knuth's up arrow notation in J.
>>>>
>>>>  From there it should be easy to code an alternative version of your
>>>> adverb H.  I never bother to do so because there are just a few
>>>> numbers, to
>>>> say the list, that you can actually compute for the hyper operations.
>>>>
>>>> As it has been pointed out before, J is relatively slow computing large
>>>> numbers.  Maybe Pascal's package can help but, of course, huge numbers
>>>> are beyond the computer capabilities of J or any other programming
>>>> language
>>>> (in this universe, as is presently known, anyway).
>>>>
>>>> On Thu, Nov 19, 2015 at 3:51 PM, Dan Bron <[email protected]> wrote:
>>>>
>>>> The notion of “hyper operation” extends the intuition that
>>>>> multiplication is repeated addition, exponentiation is repeated
>>>>> multiplication, tetration is repeated exponentiation, and so on.
>>>>>
>>>>> Hyperoperation can be defined piecewise (per Wikipedia) as:
>>>>>
>>>>>              / b+1 if n = 0
>>>>>              | a if n  = 1, b = 0
>>>>>   H_n(a,b) = | 0 if n  = 2, b = 0
>>>>>              | 1 if n >= 3, b = 0
>>>>>              \ H_n-1( a, H_n(a, b-1) ) otherwise
>>>>>
>>>>> Or, in J:
>>>>>
>>>>> H =: adverb define
>>>>> :
>>>>>    if. 0=m do.
>>>>>      1+y
>>>>>    elseif. (m > 0) *. (0=y) do.
>>>>>      (<:3<.m) { x,0,1
>>>>>    elseif. do.
>>>>>      x (<:m) H x m H <:y
>>>>>    end.
>>>>> )
>>>>>
>>>>> Now, while J likes 2 (0 H) 3, 2 (1 H) 3, 2 (2 H) 3, and 2 (3 H) 3 just
>>>>> fine, producing the expected results [1], it silently crashes (i.e.
>>>>> the IDE
>>>>> simply disappears) on 2 (4 H) 3 .
>>>>>
>>>>> Now, I’m sure  2 tetration 3  is some absurdly large number and I
>>>>> wouldn’t expect a result, but I’d prefer a stack error (or whatever)
>>>>> to a
>>>>> crash.
>>>>>
>>>>> -Dan
>>>>>
>>>>> [1]  Representing successor, addition, multiplication, and
>>>>> exponentiation respectively.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ----------------------------------------------------------------------
>>>>> For information about J forums see http://www.jsoftware.com/forums.htm
>>>>>
>>>>
>>>>
>>>> ----------------------------------------------------------------------
>> For information about J forums see http://www.jsoftware.com/forums.htm
>>
>
>
>
> ---
> This email has been checked for viruses by Avast antivirus software.
> https://www.avast.com/antivirus
>
>
> ----------------------------------------------------------------------
> 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