Advertisement
Guest User

Untitled

a guest
Dec 25th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.34 KB | None | 0 0
  1. (define (make-dictionary)
  2.   (define (dictionary ls)
  3.     (define (add_val ls key val found res)
  4.       (cond
  5.         ((not (eq? (is_contains ls key) #f))
  6.         (define n (change_val ls key))
  7.         (dictionary n)
  8.         )
  9.         (else (dictionary (append (cons key val) ls)))
  10.         )
  11.  
  12.       (define (is_contains ls to_find)
  13.         (cond
  14.           ((null? ls) #f)
  15.           ((equal? (caar ls) to_find) (car ls))
  16.           (else (is_contains (cdr ls) to_find))
  17.           )
  18.         )
  19.  
  20.       (define (change_val ls old new_val)
  21.         (cond
  22.           ((null? ls) ls)
  23.           ((equal? (car ls) old) (append (list new_val) (cdr ls)))
  24.           (else (append (list (car ls)) (change_val (cdr ls) old new_val)))
  25.           )
  26.         )
  27.  
  28.         )
  29.  
  30.     (define (find_val lst key)
  31.  
  32.       (define (is_contains ls to_find)
  33.         (cond
  34.           ((null? ls) #f)
  35.           ((equal? (caar ls) to_find) (car ls))
  36.           (else (is_contains (cdr ls) to_find))
  37.           )
  38.         )
  39.  
  40.       (cond
  41.         ((null? lst) #f)
  42.         ((equal? (caar lst) key) (car lst))
  43.         (else (is_contains (cdr lst) key))
  44.         )
  45.  
  46.       )
  47.  
  48.   (define (choose_func param)
  49.     (cond
  50.       ((null? param) ls)
  51.       ((pair? param) (dictionary (add_val ls (car param) (cdr param) #f '())))
  52.       (else (find_val ls param))
  53.       )
  54.     )
  55.   )
  56. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement