匿名 #6331(2008/05/24 15:24 GMT) [ Common Lisp ] Rating1/1=1.00
>(setf env (gen-family-relation pair-lst '())) ((Z C)(Y Z)(D X)(C D E)(B C)(A B F)) >(query 'A env) (A (B (C (D X) E)) F) >(query 'Y env) (Y (Z (C (D X) E)))
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
(setf pair-lst '((a b) (b c) (c d) (c e) (a f) (d x) (y z) (z c) )) (defun gen-family-relation (list env) (let ( node result ) (dolist (x list result) (setf node (assoc (car x) env)) (if node (setf (cdr node) (append (cdr node) (cdr x))) (push x env) ) (setf result env) ))) (defun query (s env) (let ((node (assoc s env))) (if node (cons (car node)(mapcar #'(lambda (x)(query x env)) (cdr node))) s)))
Rating1/1=1.00-0+
[ reply ]
匿名
#6331()
[
Common Lisp
]
Rating1/1=1.00
(setf pair-lst '((a b) (b c) (c d) (c e) (a f) (d x) (y z) (z c) )) (defun gen-family-relation (list env) (let ( node result ) (dolist (x list result) (setf node (assoc (car x) env)) (if node (setf (cdr node) (append (cdr node) (cdr x))) (push x env) ) (setf result env) ))) (defun query (s env) (let ((node (assoc s env))) (if node (cons (car node)(mapcar #'(lambda (x)(query x env)) (cdr node))) s)))Rating1/1=1.00-0+
[ reply ]