Advertisement
Guest User

Untitled

a guest
Apr 26th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.53 KB | None | 0 0
  1. #lang racket
  2.  
  3. ;; spoko funkcje
  4.  
  5.  
  6. (define (reverse-rek xs)
  7.   (if (pair? xs)
  8.       (append (reverse-rek (cdr xs)) (cons (car xs) null))
  9.       xs))
  10.  
  11. (define (fold-right op nval xs) ;; spoko funkcja
  12.   (if (null? xs)
  13.       nval
  14.       (op (car xs)
  15.           (fold-right op nval (cdr xs)))))
  16.  
  17.  
  18. (define (insert xs n)
  19.   (if (> n (car xs))
  20.       (cons (car xs) (insert (cdr xs) n))
  21.       (cons n xs)))
  22.  
  23.  
  24. (define (append-s . xs)
  25.   (fold-right append null xs))
  26.      
  27. (define (permi xs)
  28.   (if (null? xs)
  29.       null
  30.       (append-s (map (lambda (zs) (insert (car zs) zs)) (permi (cdr xs))))))
  31.  
  32.  
  33.  
  34. (define (mirror tree) ;3
  35.   (if (leaf? tree)
  36.       tree
  37.       (make-node (node-val tree )
  38.                  (mirror (node-right tree))
  39.                  (mirror (node-left tree)))))
  40.  
  41. (define (flatten tree) ;4
  42.   (if (leaf? tree)
  43.       null
  44.       (append (flatten (node-left tree))
  45.             (cons (node-val tree)
  46.                   (flatten (node-right tree))))))
  47.  
  48. (define (treesort xs) ;5
  49.   (define (treesorcik xs tree)
  50.     (if (null? xs)
  51.         tree
  52.        (treesorcik (cdr xs) (bst-insert (car xs) tree))))
  53.   (flatten (treesorcik xs 'leaf)))
  54.  
  55. (define (append xs ys)
  56.   (if (null? xs)
  57.       ys
  58.       (cons (car xs) (append (cdr xs) ys))))
  59.  
  60. (define (map f xs)
  61.   (if (null? xs)
  62.       null
  63.       (cons (f (car xs))
  64.             (map f (cdr xs)))))
  65.  
  66. (define (flatten2 t)
  67.   (define (flat t acc)
  68.     (if (leaf? t)
  69.         acc
  70.         (flat (node-left t) (cons (node-value t) (flat (node-right t) acc)))))
  71.   (flat t null))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement