Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #lang racket
- ;1 zad
- ; ( 1 2 1 1 2 3 1)
- ; ((1 . 4) (2 . 2) (3 . 1))
- (define (occurence-x x xs)
- (define (helper x xs counter)
- (cond
- ((null? xs) counter)
- ((eq? x (car xs)) (helper x (cdr xs) (+ counter 1)))
- (else (helper x (cdr xs) counter))))
- (helper x xs 0))
- (define (remove-element x xs)
- (cond
- ((null? xs) '())
- ((eq? x (car xs)) (remove-element x (cdr xs)))
- (else (cons (car xs) (remove-element x (cdr xs))))))
- (define (occurence-each xs)
- (define (helper xs newlist)
- (if (null? xs)
- (reverse newlist)
- (helper (remove-element (car xs) xs) (cons (cons (car xs) (occurence-x (car xs) xs)) newlist))))
- (helper xs '()))
- ;2 zadacha
- ; ( 1 1 1 3 2 2 5 6 1 )
- ; ( (1 . 3) (3 . 1) (2 . 2) (5 . 1) (6 . 1) (1 . 1 ) )
- (define (drop n xs)
- (define (drop-helper n xs newlist)
- (cond
- ((null? xs ) newlist)
- ((= n 0) (drop-helper n (cdr xs) (append newlist (list (car xs)))))
- (else (drop-helper (- n 1) (cdr xs) newlist))))
- (drop-helper n xs '()))
- (define (prefix xs)
- (define (prefix-helper xs lastElement counter)
- (if (or (null? xs)(not (= lastElement (car xs))))
- counter
- (prefix-helper (cdr xs) (car xs) (+ counter 1))))
- (prefix-helper (cdr xs) (car xs) 1))
- (define (occurence-each-prefix xs)
- (define (helper xs newlist)
- (if (null? xs)
- (reverse newlist)
- (helper (drop (prefix xs) xs) (cons (cons (car xs) (prefix xs)) newlist))))
- (helper xs '()))
- ;3 zadacha
- (define (list-number-n-times number times)
- (if (= times 0)
- '()
- (cons number (list-number-n-times number (- times 1)))))
- (define (restore xs)
- (define (restore-helper xs newlist)
- (if (null? xs)
- newlist
- (restore-helper (drop 1 xs) (append newlist (list-number-n-times (caar xs) (cdar xs))))))
- (restore-helper xs '()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement