fork download
  1. (define eqan?
  2. (lambda (a1 a2)
  3. (cond
  4. ((and (number? a1)(number? a2))(= a1 a2))
  5. ((or (number? a1)(number? a2)) #f)
  6. (else (eq? a1 a2)))))
  7.  
  8. (define eqlist?
  9. (lambda(l1 l2)
  10. (cond
  11. ((and (null? l1)(null? l2)) #t) ;;l1-null, l2-null
  12. ((and (null? l1)(atom? (car l2))) #f) ;;l1-null (car l2)-atom
  13. ((null? l1) #f) ;;l1-null, (car l2)-list/(cdr l2)-null, (cdr l2)-atom, (cdr l2)-list
  14. ((and (atom? (car l1))(null? l2)) #f) ;; (car l1)-atom, l2-null
  15. ((and (atom? (car l1))(atom? (car l2))) ;;(car l1)-atom, (car l2)-atom
  16. (and (eqan? (car l1)(car l2))(eqlist? (cdr l1)(cdr l2))))
  17. ((atom? (car l1)) #f) ;;(car l1)-atom, (car l2)-list/(cdr l2)-atom/(cdr l2)-list
  18. ;;(car l1)-list, (cdr l1)-list, * (l2-null, (car l2)-null, (car l2)-atom (car l2)-list (cdr l2)-null, (cdr l2)-atom, (cdr l2)-list)
  19. ((null? l2) #f)
  20. ;;((car l1)-list, (cdr l1)-list) * ((car l2)-null, (car l2)-atom (car l2)-list (cdr l2)-null, (cdr l2)-atom, (cdr l2)-list)
  21. ((atom? (car l2)) #f)
  22. ;;((car l1)-list, (cdr l1)-list) * ((car l2)-null, (car l2)-list (cdr l2)-null, (cdr l2)-atom, (cdr l2)-list)
  23. (else
  24. (and (eqlist? (car l1)(car l2))(eqlist? (cdr l1)(cdr l2)))))))
Success #stdin #stdout 0.02s 50288KB
stdin
Standard input is empty
stdout
Standard output is empty