X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=dev%2Fgraph-container.lisp;h=1e24d332fc502a916f7e40883c41113d0ad9d1b1;hb=63b8fd870436113d8d196d94f1e6f2eabfe7f786;hp=345ee48354cd3d2dfacfbacfea85ba136ddb6dec;hpb=24c645986ed5cc5b0b26605cbe2f44873870a624;p=cl-graph.git diff --git a/dev/graph-container.lisp b/dev/graph-container.lisp index 345ee48..1e24d33 100644 --- a/dev/graph-container.lisp +++ b/dev/graph-container.lisp @@ -149,7 +149,7 @@ DISCUSSION &key force-new?) (declare (ignore force-new?)) - (bind ((vertex-1 (vertex-1 edge)) + (let ((vertex-1 (vertex-1 edge)) (vertex-2 (vertex-2 edge))) (cond ((eq vertex-1 vertex-2) @@ -209,12 +209,11 @@ DISCUSSION (value-2 t) fn &key error-if-not-found?) - (bind ((v1 (find-vertex graph value-1 error-if-not-found?)) + (let ((v1 (find-vertex graph value-1 error-if-not-found?)) (v2 (find-vertex graph value-2 error-if-not-found?))) - (aif (and v1 v2 (find-edge-between-vertexes-if graph v1 v2 fn)) - it - (when error-if-not-found? - (error 'graph-edge-not-found-error :vertex-1 v1 :vertex-2 v2))))) + (or (and v1 v2 (find-edge-between-vertexes-if graph v1 v2 fn)) + (when error-if-not-found? + (error 'graph-edge-not-found-error :vertex-1 v1 :vertex-2 v2))))) ;;; --------------------------------------------------------------------------- @@ -269,7 +268,7 @@ DISCUSSION (iterate-elements (vertex-edges vertex) (lambda (edge) (when (or (undirected-edge-p edge) - (eq vertex (target-vertex edge))) + (eq vertex (source-vertex edge))) (funcall fn edge))))) ;;; --------------------------------------------------------------------------- @@ -278,20 +277,20 @@ DISCUSSION (iterate-elements (vertex-edges vertex) (lambda (edge) (when (or (undirected-edge-p edge) - (eq vertex (source-vertex edge))) + (eq vertex (target-vertex edge))) (funcall fn edge))))) ;;; --------------------------------------------------------------------------- (defmethod iterate-children ((vertex graph-container-vertex) fn) - (iterate-target-edges vertex + (iterate-source-edges vertex (lambda (edge) (funcall fn (other-vertex edge vertex))))) ;;; --------------------------------------------------------------------------- (defmethod iterate-parents ((vertex graph-container-vertex) fn) - (iterate-source-edges vertex + (iterate-target-edges vertex (lambda (edge) (funcall fn (other-vertex edge vertex)))))