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

Variations on a Theme

Name: Anonymous 2009-11-04 1:17

Come up with variations of your favorite toy problems.  The more obfuscated the better.

I'll start with a simple one:

def factorial(n): return reduce(lambda x,y: x*y, range(1,n
+1)) if n > 1 else 1

Name: Anonymous 2009-11-04 1:40


(PROGN
  (EVAL-WHEN (:COMPILE-TOPLEVEL) (SB-C:%COMPILER-DEFUN 'FACTORIAL 'NIL T))
  (EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE)
    (SB-IMPL::%DEFUN 'FACTORIAL
             (SB-INT:NAMED-LAMBDA FACTORIAL (N)
               (BLOCK FACTORIAL
             (REDUCE #'*
                 (BLOCK NIL
                   (LET ((I 1)
                     (#:LOOP-LIMIT-945 N))
                     (DECLARE
                      (TYPE (AND NUMBER REAL)
                        #:LOOP-LIMIT-945)
                      (TYPE (AND REAL NUMBER)
                        I))
                     (LET* ((#:LOOP-LIST-HEAD-946
                         (LIST NIL))
                        (#:LOOP-LIST-TAIL-947
                         #:LOOP-LIST-HEAD-946))
                       (TAGBODY
                    SB-LOOP::NEXT-LOOP
                      (IF
                       (> I
                          #:LOOP-LIMIT-945)
                       (PROGN
                         (GO
                          SB-LOOP::END-LOOP))
                       NIL)
                      (RPLACD
                       #:LOOP-LIST-TAIL-947
                       (SETQ #:LOOP-LIST-TAIL-947
                         (LIST I)))
                      (SETQ I (1+ I))
                      (GO
                       SB-LOOP::NEXT-LOOP)
                    SB-LOOP::END-LOOP
                      (RETURN-FROM NIL
                        (CDR
                         #:LOOP-LIST-HEAD-946))))))
                 :INITIAL-VALUE 1)))
             NIL 'NIL (SB-C:SOURCE-LOCATION))))


Just kidding, here's the original:


(defun factorial (n)
  (reduce #'* (loop for i from 1 to n collect i) :initial-value 1))


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