Facebook
From Masteboski, 7 Years ago, written in Scheme.
Embed
Download Paste or View Raw
Hits: 303
  1. ;(display (cons 2 (cons 1 '())))
  2. ;(newline)
  3. (define TworzListe
  4.        (lambda (n)
  5.        (if (<= n 1)
  6.        (cons 1 '())
  7.        (cons n (TworzListe (- n 1)))
  8.        )
  9.    )
  10. )
  11.  
  12. (define DlugoscListy
  13.       (lambda (x)
  14.         (if (pair? x)
  15.         (+ 1 (DlugoscListy (cdr x)))
  16.         0
  17.         )
  18.     )
  19. )
  20.  
  21. (define SumaListy
  22.       (lambda (x)
  23.         (if (pair? x)
  24.             (+ (car x) (SumaListy (cdr x)))
  25.             0
  26.         )
  27.        )
  28. )
  29.  
  30. (define SredniaAryt
  31.      (lambda (x)
  32.         (/ (SumaListy x) (DlugoscListy x))
  33.        )
  34. )
  35.  
  36. ;(display (TworzListe (read)))
  37. ;(newline)
  38. ;(display (Dlugosc (TworzListe (read))))
  39. (define n (read))
  40. (define lista (TworzListe n))
  41. (display "Lista: ")
  42. (display lista)
  43. (newline)
  44. (display "Suma listy: ")
  45. (display (SumaListy lista))
  46. (newline)
  47. (display "Dlugosc listy: ")
  48. (display (DlugoscListy lista))
  49. (newline)
  50. (display "Srednia aryt: ")
  51. (display (SredniaAryt lista))
  52. (newline)
  53.  
  54. ; ************* Odwracanie Listy ******************
  55.  
  56. (define Reverse-help
  57.     (lambda (s r)
  58.       (if (pair? s)
  59.          (Reverse-help (cdr s) (cons (car s) r))
  60.          r
  61.        )  
  62.      )
  63. )      
  64.  
  65.  
  66. (define reversidlo
  67.     (lambda (x)
  68.       (Reverse-help x '())
  69.      )
  70. )
  71.  
  72. (display "Odwrocona lista: ")
  73. (display (reversidlo lista))
  74. (newline)
  75.  
  76. ; *************************************************
  77.  
  78. (define DodajListy
  79.    (lambda (a b)
  80.      (if (pair? a)
  81.          (cons (+ (car a) (car b)) (DodajListy (cdr a) (cdr b) ))
  82.          '()
  83.        )
  84.     )
  85. )
  86. ;*************************
  87. (define DodajListyProsciej
  88.       (lambda (a b)
  89.         (map + a b)
  90.        )
  91. )
  92. ;*************************
  93. (define a (list 1 2 3 4))
  94. (define b (list 1 0 1 -4))
  95. (define m (list a b))
  96. (define x (list 2 1 -1 1))
  97.  
  98. (define DodajMacierze
  99.     (lambda (a  b)
  100.       (map DodajListyProsciej a b)
  101.      )
  102. )
  103.  
  104. (display (DodajMacierze m m))
  105. (newline)
  106.  
  107. ;*********** Transpozycja Macierzy ******
  108. (define Transp
  109.    (lambda (m)
  110.       (if (pair? (car m))
  111.           (cons
  112.             (map car m)
  113.             (Transp (map cdr m))
  114.            )
  115.           '()
  116.        )
  117.     )
  118. )
  119. ; ***************** ILOCZYN SKALARNY *************
  120. (define iloczyn-skalarny
  121.      (lambda (a b)
  122.       (SumaListy (map * a b))
  123.       )
  124. )
  125. ;************* Mnozenie macierzy przez skalar? ***
  126. (define iloczyn-skalarny-przez
  127.    (lambda (x)
  128.      (lambda (a) (iloczyn-skalarny a x))
  129.     )
  130. )
  131.  
  132. (define macierz-przez-wektor
  133.     (lambda (A x)
  134.       (map (iloczyn-skalarny-przez x) A)
  135.      )
  136. )
  137. ;**** Mnozenie macierzy przez macierz ******
  138. (define mac-przez-mac-help
  139.   (lambda (A)
  140.     (lambda (x) (macierz-przez-wektor A x))
  141.    )
  142. )
  143.  
  144. (define macierz-przez-macierz
  145.    (lambda (A B)
  146.      (map (mac-przez-mac-help A) (Transp B))
  147.     )
  148. )
  149. ;********* >  MAIN  < *************
  150.  
  151. ;(display (DodajListy a b))
  152. ;(newline)
  153. ;(display (DodajListyProsciej a b))
  154. (display m)
  155. (newline)
  156. (display (Transp m))
  157. (newline)
  158. ;(display (iloczyn-skalarny a b))
  159. (display (macierz-przez-wektor m x))
  160. (newline)
  161. (display (macierz-przez-macierz m (Transp m)))