codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
; largest forward difference (define (largest-forward-difference xs) (let ((lfd 0)) (do ((xs xs (cdr xs))) ((null? xs) lfd) (do ((ys xs (cdr ys))) ((null? ys)) (set! lfd (max lfd (- (car ys) (car xs)))))))) (display (largest-forward-difference '(1 5 7 2 9))) (newline) (display (largest-forward-difference '(4 3 2 1))) (newline) (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)
Private
[
?
]
Run code
Submit