(define (range lo hi)
  (if (>= hi lo)
      (build-list (+ (- hi lo) 1) (lambda (i) (+ lo i)))
      (build-list (+ (- lo hi) 1) (lambda (i) (- lo i)))))

(define (sort2 l) (sort l (lambda (i j) (< (second i) (second j)))))

-- Matthias



On Apr 1, 2009, at 10:39 PM, David Vanderson wrote:


Matthias Felleisen wrote:
(define (fence s n)
(define is (shared ((x (append (range 1 n) (range (- n 1) 2) x))) x)) (define wv (for/list ((c s)) (begin0 (list c (car is)) (set! is (cdr is)))))
  (map first (sort2 wv)))

I very much enjoyed trying my hand at this problem and then figuring out how this function works. But I couldn't find "range" or "sort2" in the PLT docs. Are those functions that seasoned schemers are assumed to know about and have on hand?

Thanks,
Dave

_________________________________________________
 For list-related administrative tasks:
 http://list.cs.brown.edu/mailman/listinfo/plt-dev

Reply via email to