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

Reply via email to