Guest User

Untitled

a guest
May 24th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. ;#5
  2.  
  3. (define (matrix a b c d)
  4. (cons a (cons b (cons c (cons d '())))))
  5.  
  6. (define (value mat index)
  7. (cond ((equal? index 'a) (car mat))
  8. ((equal? index 'b) (cadr mat))
  9. ((equal? index 'c) (caddr mat))
  10. ((equal? index 'd) (cadddr mat))
  11. (else "No such element")))
  12.  
  13. (define (compose-matrix mata matb)
  14. (define a (+
  15. (* (value mata 'a) (value matb 'a))
  16. (* (value mata 'b) (value matb 'c))))
  17. (define b (+
  18. (* (value mata 'a) (value matb 'b))
  19. (* (value mata 'b) (value matb 'd))))
  20. (define c (+
  21. (* (value mata 'c) (value matb 'a))
  22. (* (value mata 'd) (value matb 'c))))
  23. (define d (+
  24. (* (value mata 'c) (value matb 'b))
  25. (* (value mata 'd) (value matb 'd))))
  26. (cons a (cons b (cons c (cons d '())))))
  27.  
  28. (define (add-matrix mata matb)
  29. (define a (+ (value mata 'a) (value matb 'a)))
  30. (define b (+ (value mata 'b) (value matb 'b)))
  31. (define c (+ (value mata 'c) (value matb 'c)))
  32. (define d (+ (value mata 'd) (value matb 'd)))
  33. (cons a (cons b (cons c (cons d '())))))
  34.  
  35. (define (add-streams-matrix s1 s2)
  36. (cond ((null? s1) '())
  37. ((null? s2) '())
  38. (else (cons-stream (add-matrix (stream-car s1) (stream-car s2))
  39. (add-streams-matrix (stream-cdr s1)
  40. (stream-cdr s2))))))
  41.  
  42. (define omat-stream (cons-stream (matrix 1 4 0 2) omat-stream))
  43.  
  44. (define (pi o-stream)
  45. (define (action strm a a-list outpt)
  46. (define (produce)
  47. (action strm
  48. (define consume)
  49. )
  50. (action o-stream 2))))
Add Comment
Please, Sign In to add comment