Advertisement
Guest User

Untitled

a guest
Mar 21st, 2017
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.19 KB | None | 0 0
  1. (defun syncer-create-test-repo (repo-symbol initial-elements)
  2.   "Create a test repository under REPO-SYMBOL with INITIAL-ELEMENTS."
  3.   (set repo-symbol
  4.         (list
  5.          (cons 'get-all
  6.                 (lambda () (get repo-symbol 'elements)))
  7.          (cons 'put-element
  8.                 (lambda (el) (put
  9.                  repo-symbol
  10.                  'elements
  11.                  (append (get repo-symbol 'elements) (list el)))))
  12.          (cons 'get-element
  13.                 (lambda (id) (car (remove-if
  14.                   (lambda (el)
  15.                     (not (eq id (cdr (assoc 'ID el)))))
  16.                   (get repo-symbol 'elements)))))
  17.          (cons 'delete-element
  18.                (lambda (id)
  19.                 (put
  20.                  repo-symbol
  21.                  'elements
  22.                  (remove-if
  23.                   (lambda (el)
  24.                     (eq id (cdr (assoc 'ID el))))
  25.                   (get repo-symbol 'elements)))))
  26.          ))
  27. )
  28.  
  29. (syncer-create-test-repo 'repo-a '( ((ID A)) ((ID B)) ((ID C))) )
  30. (syncer-create-test-repo 'repo-b '( ((ID D)) ((ID E)) ((ID F))) )
  31. (syncer-create-test-repo 'repo-status '( ((ID D)) ((ID F)) ))
  32.  
  33. (funcall (cdr(assoc 'get-all repo-a)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement