Perhaps you are not aware of The Book of Numbers by Conway & Guy, where on page 60 Knuth's arrow notation was described: m^n = m*m*...*m, n times m^^n=m^m^...^m, n times m^^^n=m^^m^^m^^...^^m, n times etc. Just your "hyper operation".
But if you think this notation produces large numbers, try the author's "chained arrow notation" a->b->c->.....->x->y->z (page 61) Mind boggling. I could send you a few pages if you wish. R.E. Boss > -----Original Message----- > From: [email protected] [mailto:programming- > [email protected]] On Behalf Of Dan Bron > Sent: donderdag 19 november 2015 21:52 > To: J Programming <[email protected]> > Subject: [Jprogramming] Crash calculating large hyper operations > > 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 = > 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
