Advertisement
Jobjob

Programmation déclarative - Q5 - 08/2011

Jan 6th, 2015
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 0.81 KB | None | 0 0
  1. (define (str-mult n)
  2.   (letrec
  3.       ((inner (lambda (m)
  4.                 (cons-stream m (inner (+ m n)))
  5.                 )
  6.               ))
  7.     (inner n)
  8.     )
  9.   )
  10.  
  11. (define (fusion str1 str2 str3)
  12.   (let*
  13.       ((minimum (min (head str1) (head str2) (head str3)))
  14.        (remove-head-if-min (lambda (str mini)
  15.                              (if (= mini (head str))
  16.                                  (tail str)
  17.                                  str)
  18.                              )
  19.                            )
  20.        (sttr1 (remove-head-if-min str1 minimum))
  21.        (sttr2 (remove-head-if-min str2 minimum))
  22.        (sttr3 (remove-head-if-min str3 minimum))
  23.        )
  24.     (cons-stream minimum (fusion sttr1 sttr2 sttr3))
  25.     )
  26.   )
  27.  
  28. (define (hamming)
  29.   (fusion (str-mult 2) (str-mult 3) (str-mult 5))
  30.   )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement