[ create a new paste ] login | about

Link: http://codepad.org/0a9T48FN    [ raw code | output | fork ]

programmingpraxis - Scheme, pasted on Jan 14:
1
2
3
4
5
6
7
8
9
10
11
12
13
; largest forward difference

(define (largest-forward-difference xs)
  (let loop ((min-to-left (min (car xs) (cadr xs)))
             (max-so-far (- (cadr xs) (car xs)))
             (xs (cddr xs)))
    (if (null? xs) max-so-far
      (let* ((min-to-left (min min-to-left (car xs)))
             (diff-ending-here (- (car xs) min-to-left)))
        (loop min-to-left (max max-so-far diff-ending-here) (cdr xs))))))

(display (largest-forward-difference '(1 5 7 2 9))) (newline)
(display (largest-forward-difference '(4 3 2 1))) (newline)


Output:
1
2
8
0


Create a new paste based on this one


Comments: