codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
(require 'srfi-1) (define (rotate lst) (cond ((null? lst) '()) (else (let ((rev (reverse lst))) (cons (car rev) (reverse! (cdr rev))))))) (define (4sum lst ::list) (define (find-4sum l ::list) (let ((first-four (take l 4))) (cond ((equal? l lst) 'no-more-results) ((zero? (apply + first-four)) (begin (format #t "~A~%" first-four) (find-4sum (rotate l)))) (else (find-4sum (rotate l)))))) (cond ((member 0 lst) (begin (format #t "~A~%" '(0 0 0 0)) (find-4sum (rotate lst)))) ((zero? (apply + (take lst 4))) (begin (format #t "~A~%" (take lst 4)) (find-4sum (rotate lst)))) (else (find-4sum (rotate lst))))) ;; Eg. #|kawa:1|# (4sum '(2 3 1 0 -4 -1)) (0 0 0 0) (-4 -1 2 3) (3 1 0 -4) no-more-results
Private
[
?
]
Run code
Submit