Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define (make-dictionary)
- (define (dictionary ls)
- (define (add_val ls key val found res)
- (cond
- ((not (eq? (is_contains ls key) #f))
- (define n (change_val ls key))
- (dictionary n)
- )
- (else (dictionary (append (cons key val) ls)))
- )
- (define (is_contains ls to_find)
- (cond
- ((null? ls) #f)
- ((equal? (caar ls) to_find) (car ls))
- (else (is_contains (cdr ls) to_find))
- )
- )
- (define (change_val ls old new_val)
- (cond
- ((null? ls) ls)
- ((equal? (car ls) old) (append (list new_val) (cdr ls)))
- (else (append (list (car ls)) (change_val (cdr ls) old new_val)))
- )
- )
- )
- (define (find_val lst key)
- (define (is_contains ls to_find)
- (cond
- ((null? ls) #f)
- ((equal? (caar ls) to_find) (car ls))
- (else (is_contains (cdr ls) to_find))
- )
- )
- (cond
- ((null? lst) #f)
- ((equal? (caar lst) key) (car lst))
- (else (is_contains (cdr lst) key))
- )
- )
- (define (choose_func param)
- (cond
- ((null? param) ls)
- ((pair? param) (dictionary (add_val ls (car param) (cdr param) #f '())))
- (else (find_val ls param))
- )
- )
- )
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement