Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 0.86 KB | None | 0 0
  1. ; (title cost town street)
  2. ; prod for producer
  3. (setf prod '(
  4.     ("a" 10 "1" "$")
  5.     ("a" 6 "4" "$")
  6.     ("a" 15 "8" "$")
  7.    
  8.     ("b" 200 "5" "@")
  9.     ("b" 180 "1" "@")
  10.     ("b" 300 "7" "@")
  11.    
  12.     ("c" 31 "6" "%")
  13.     ("c" 28 "4" "%")
  14.     ("c" 28 "5" "%")
  15.     )
  16. )
  17.  
  18. (setf goods '(
  19.     "b"
  20.     "c"
  21.     )
  22. )
  23.  
  24. (defun min_cost_prod (p)
  25.     (cond
  26.         ((null (cdr p)) (car p))
  27.         ((< (cadar p) (cadr (min_cost_prod (cdr p)))) (car p))
  28.         (t (min_cost_prod (cdr p)))
  29.     )
  30. )
  31.  
  32. (defun goods_prod (g p)
  33.     (cond
  34.         ((null p) nil)
  35.         ((equal g (caar p)) (cons (car p) (goods_prod g (cdr p))))
  36.         (t (goods_prod g (cdr p)))
  37.     )
  38. )
  39.  
  40. (defun nice_prod (g p)
  41.     (cond
  42.         ((null g) nil)
  43.         (t (cons (min_cost_prod (goods_prod (car g) p)) (nice_prod (cdr g) p)))
  44.     )
  45. )
  46.  
  47. (print (nice_prod goods prod))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement