Advertisement
Guest User

Untitled

a guest
Nov 27th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.87 KB | None | 0 0
  1. #lang racket
  2.  
  3. ;1 zad
  4. ; ( 1 2 1 1 2 3 1)
  5. ; ((1 . 4) (2 . 2) (3 . 1))
  6. (define (occurence-x x xs)
  7.   (define (helper x xs counter)
  8.     (cond
  9.       ((null? xs) counter)
  10.       ((eq? x (car xs)) (helper x (cdr xs) (+ counter 1)))
  11.       (else (helper x (cdr xs) counter))))
  12.   (helper x xs 0))
  13.  
  14. (define (remove-element x xs)
  15.   (cond
  16.     ((null? xs) '())
  17.     ((eq? x (car xs)) (remove-element x (cdr xs)))
  18.     (else (cons (car xs) (remove-element x (cdr xs))))))
  19.  
  20. (define (occurence-each xs)
  21.   (define (helper xs newlist)
  22.     (if (null? xs)
  23.         (reverse newlist)
  24.         (helper (remove-element (car xs) xs) (cons (cons (car xs) (occurence-x (car xs) xs)) newlist))))
  25.   (helper xs '()))
  26.  
  27.  
  28. ;2 zadacha
  29. ; ( 1 1 1 3 2 2 5 6 1 )
  30. ; ( (1 . 3) (3 . 1) (2 . 2) (5 . 1) (6 . 1) (1 . 1 ) )
  31.  
  32. (define (drop n xs)
  33.   (define (drop-helper n xs newlist)
  34.     (cond
  35.       ((null? xs ) newlist)
  36.       ((= n 0) (drop-helper n (cdr xs) (append newlist (list (car xs)))))
  37.       (else (drop-helper (- n 1) (cdr xs) newlist))))
  38.   (drop-helper n xs '()))
  39.  
  40. (define (prefix xs)
  41.   (define (prefix-helper xs lastElement counter)
  42.     (if (or (null? xs)(not (= lastElement (car xs))))
  43.           counter
  44.       (prefix-helper (cdr xs) (car xs) (+ counter 1))))
  45.   (prefix-helper (cdr xs) (car xs) 1))
  46.  
  47. (define (occurence-each-prefix xs)
  48.   (define (helper xs newlist)
  49.     (if (null? xs)
  50.         (reverse newlist)
  51.         (helper (drop (prefix xs) xs) (cons (cons (car xs) (prefix xs)) newlist))))
  52.   (helper xs '()))
  53.  
  54. ;3 zadacha
  55.  
  56. (define (list-number-n-times number times)
  57.   (if (= times 0)
  58.       '()
  59.       (cons number (list-number-n-times number (- times 1)))))
  60.  
  61. (define (restore xs)
  62.   (define (restore-helper xs newlist)
  63.     (if (null? xs)
  64.         newlist
  65.         (restore-helper (drop 1 xs) (append newlist (list-number-n-times (caar xs) (cdar xs))))))
  66.   (restore-helper xs '()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement