Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Knuth's up-arrow notation

Name: Anonymous 2007-08-07 11:37 ID:ywrNHFyl

(defun knuth (x n)
  (if (= n 2)
      (return-from knuth (expt x x))
    (return-from knuth (expt x (knuth x (- n 1))))
    )
)


Yes, an implementation in 6 lines of Lisp. What is Knuth's up-arrow notation? Wikipedia that shit. Don't try this with anything greater than (knuth 3 3), or you will overflow. (knut 3 3) == 3^3^3. (knuth 3 4) == 3^3^3^3.

Name: Anonymous 2007-08-08 8:24 ID:DDRzupTb

lisp fag version:
: knuth ( x y -- z ) 2dup zero? [ * ^ ] [ swap 1- knuth ^ ] if ;

haskell fag version:
: knuth ( x y -- z ) 2dup zero? [ * ^ ] [ swap 1- [ over swap ^ ] times nip ] if ;

better version:
: knuth ( x y -- z ) swap <array> 1 [ swap ^ ] reduce ;

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List