Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 0.84 KB | None | 0 0
  1. #lang racket
  2.  
  3. (define atom? (λ (a) (and (not (pair? a)) (not (null? a)))))
  4.  
  5. ;; The Little Schemer
  6. ;; 2. Do It, Do It Again, and Again, and Again...
  7.  
  8. (define (lat? l)
  9.   (cond
  10.     ((null? l) #t)
  11.     (else (cond
  12.             ((atom? (car l))
  13.              (lat? (cdr l)))
  14.             (else #f)))))
  15.  
  16. (define (member? a lat)
  17.   (cond
  18.     ((null? lat) #f)
  19.     (else (cond
  20.             ((eq? a (car lat)) #t)
  21.             (else
  22.              (member? a (cdr lat)))))))
  23.  
  24. ;; --- Tests -----------------------------------------------
  25.  
  26. (define (test-lat)
  27.   (and
  28.    (not (lat? '(1 2 3 ())))
  29.    (lat? '(1 2 3))
  30.    ))
  31.  
  32. (define (test-member)
  33.   (and
  34.    (member? 1 '(1 2 3))
  35.    (member? 3 '(1 2 3))
  36.    (not (member? 0 '(1 2 3)))
  37.    ))
  38.  
  39. (define (test-all)
  40.   (and
  41.    (test-lat)
  42.    (test-member)
  43.    ))
  44.  
  45. (println (if (test-all) "OK" "Error"))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement