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

Complete newfag here

Name: Anonymous 2011-01-13 4:09

Hai, I'm a newfag to C++ and to this board so excuse my giant amount of fail.
Why won't this figure out the smallest thing in the array?
http://codepad.org/vaHOX8mW

Name: Anonymous 2011-01-13 16:33

Let's post some Lisp macro hackery:
;; simple range macro,
;; builds a list at compile-time when possible.
(define-syntax (range stx)
  (define gen
    (λ (x y s)
      (let-values (((compare +/-)
                    (if (< x y) (values > +)
                        (values < -))))
        (let loop ((x x)
                   (r '()))
          (if (compare x y) (reverse r)
              (loop (+/- x s)
                    (cons x r)))))))
  (syntax-case stx ()
    ((~ n m s) (let ((n1 (syntax->datum #'n))
                     (m1 (syntax->datum #'m))
                     (s1 (syntax->datum #'s)))
                 (cond ((and (number? n1)
                             (number? m1)
                             (number? s1)) #`'#,(gen n1 m1 s1))
                       (else #`(#,gen n m s)))))
    ((~ n m) #'(~ n m 1))
    ((~ m) (let ((m1 (syntax->datum #'m)))
             (if (number? m1) #`'#,(gen 0 (sub1 m1) 1)
                 #`(#,gen 0 (sub1 m) 1))))))

(range 1 10) ; => '(1 2 3 4 5 6 7 8 9 10), built at compile-time
(let ((x 10))
  (range 1 x)) ; same, but at run-time
(range 1 (+ 9 1)) ; run-time, I'm working on this
(range 10) ; => '(0 1 2 3 4 5 6 7 8 9), builds a list of ten ELEMENTS
(range 1 5 0.5) ; => (0 0.5 ... 4.5 5)

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