non-continuous.scm 564 B

123456789101112131415161718192021
  1. (define (even? x) (= 0 (modulo x 2)))
  2. (define (recurse s lst)
  3. (if (null? lst)
  4. (if (>= s 3)
  5. '(())
  6. '())
  7. (let* ((x (car lst))
  8. (xs (cdr lst)))
  9. (if (even? s)
  10. (append
  11. (map (lambda (ys) (cons x ys))
  12. (recurse (+ s 1) xs))
  13. (recurse s xs))
  14. (append
  15. (map (lambda (ys) (cons x ys))
  16. (recurse s xs))
  17. (recurse (+ s 1) xs))))))
  18. (define (ncsubseq lst)
  19. (recurse 0 lst))
  20. (define t1 (print (ncsubseq '(1 2 3 4 5))))