2012-08-13 23 views
2

http://landoflisp.com/graph-util.lisp土地Lisp函數uedges->點錯誤的或無法理解

(defun uedges->dot (edges);draw undirected graphs 
    (maplist (lambda (lst) 
     (mapc (lambda (edge) 
       (unless (assoc (car edge) (cdr lst)) 
        (fresh-line) 
        (princ (dot-name (caar lst))) 
        (princ "--") 
        (princ (dot-name (car edge))) 
        (princ "[label=\"") 
        (princ (dot-label (cdr edge))) 
        (princ "\"];"))) 
       (cdar lst))) 
     edges)) 

我覺得這個功能有一定的問題,有人能解決這個問題?

+0

您能否解釋一下_你爲什麼認爲它有問題? 「有關代碼問題的問題......必須在問題本身中描述具體問題 - 幷包含有效代碼以再現問題。請參閱SSCCE.org的指導。「這是否會產生一些意想不到的結果? – 2013-10-03 19:55:19

回答

1

我自己解決了。我希望有人照顧,同時學習lisp p125 uedges-dot功能。

(defun uedges->dot (edges);draw undirected graphs 
(maplist (lambda (lst) 
    (mapc (lambda (edge) 
     (unless (assoc (caar lst) 
         (cdr (assoc (car edge) (cdr lst))));<-----modify 'unless' 
      (fresh-line) 
      (princ (dot-name (caar lst))) 
      (princ "--") 
      (princ (dot-name (car edge))) 
      (princ "[label=\"") 
      (princ (dot-label (cdr edge))) 
      (princ "\"];"))) 
     (cdar lst))) 
    edges))