Guest User

Untitled

a guest
Jun 20th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #lang racket
  2. #|
  3. iempty, iempty?, icons, ifirst, irest, ilength, and iappend
  4. |#
  5.  
  6. (provide ilist iempty iempty? icons ifirst irest ilength iappend)
  7.  
  8. (define-struct ilist (value))
  9.  
  10. (define iempty (make-ilist empty))
  11.  
  12. (define (iempty? an-ilist)
  13. (cond
  14. [(empty? (ilist-value an-ilist)) true]
  15. [else false]))
  16.  
  17. (define (ifirst an-ilist)
  18. (first (ilist-value an-ilist)))
  19.  
  20. (define (irest an-ilist)
  21. (make-ilist (rest (ilist-value an-ilist))))
  22.  
  23. (define (icons num an-ilist)
  24. (make-ilist (append (list num) (ilist-value an-ilist))))
  25.  
  26. (define (ilength an-ilist)
  27. (length (ilist-value an-ilist)))
  28.  
  29. (define (iappend ilist1 ilist2)
  30. (make-ilist (append (ilist-value ilist1) (ilist-value ilist2))))
  31.  
  32. ;(define someilist (make-ilist (list 1 2 3)))
  33. ;(iempty? iempty)
  34. ;(iempty? someilist)
  35. ;(ifirst someilist)
  36. ;(irest someilist)
  37. ;(icons 3 someilist)
  38. ;(ilength someilist)
  39. ;(iappend someilist (make-ilist (list 1 2 3)))
Add Comment
Please, Sign In to add comment