fork download
  1. (define (task lst)
  2. (define (check lst prev?)
  3. (if (null? lst)
  4. #f
  5. (let ((curr? (list? (car lst))))
  6. (or (and prev? curr?)
  7. (check (cdr lst) curr?)))))
  8. (check lst #f))
  9.  
  10. (define (test lst)
  11. (display lst)
  12. (display " => ")
  13. (display (task lst))
  14. (newline))
  15.  
  16. (for-each
  17. test
  18. '(()
  19. (1)
  20. (1 2)
  21. ((1) 2)
  22. (1 (2))
  23. ((1) (2))
  24. (1 (2) 3)
  25. ((1) 2 (3))
  26. (1 (2) (3))
  27. ((1) (2) 3)))
Success #stdin #stdout 0.01s 8672KB
stdin
Standard input is empty
stdout
() => #f
(1) => #f
(1 2) => #f
((1) 2) => #f
(1 (2)) => #f
((1) (2)) => #t
(1 (2) 3) => #f
((1) 2 (3)) => #f
(1 (2) (3)) => #t
((1) (2) 3) => #t