<div><div><div><div>Hi,</div><div><br></div><div>I have written some code to create a directed graph reading the graph nodes from a file. </div><div><br></div><div>When I try to find the connected components, it gives an error saying no applicable method for generic function</div>
<div>subgraph-containing. I am not an expert in CLOS, hence any pointers appreciated. </div><div><b><u><br></u></b></div><div><b><u>CODE</u></b></div><div><br></div><div>(defun create-graph (file)</div><div>  (let ((lines (file-lines file))</div>
<div>        (gd (make-graph 'graph-container</div><div>                         :default-edge-type :directed)))</div><div>    (mapcar #'(lambda (line)</div><div>                (let ((vertices (split-by-one-space line)))</div>
<div>                  (mapcar #'(lambda (v1 v2)</div><div>                              (let ((sv1 (intern v1))</div><div>                                    (sv2 (intern v2)))</div><div>                                (add-vertex gd v1)</div>
<div>                                (add-vertex gd v2)</div><div>                                (add-edge-between-vertexes gd sv1 sv2)))</div><div>                          (butlast vertices)</div><div>                          (cdr vertices))))</div>
<div>            lines)</div><div>    gd))</div></div><div><br></div><div><b><u>REPL</u></b></div><div><br></div><div>* (setf g (create-graph #P"graph.txt"))</div></div><div><br></div><div>#<GRAPH-CONTAINER [27181,11097] {10038D5471}></div>
<div><br></div><div>* (connected-components g)</div><div><br></div><div>#<METABANG.CL-CONTAINERS:UNION-FIND-CONTAINER {10035D1971}></div><div>* (connected-component-count g)</div><div><br></div><div>21648</div></div>
<div><br></div><div><br></div><div>* (find-connected-components g)</div><div><br></div><div>debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" RUNNING</div><div>                                               {10037317A1}>:</div>
<div> <b> There is no applicable method for the generic function</b></div><div><b>    #<STANDARD-GENERIC-FUNCTION SUBGRAPH-CONTAINING (0)></b></div><div><b>  when called with arguments</b></div><div><b>    (#<GRAPH-CONTAINER [27181,11097] {10038D5471}> #<101> :DEPTH</b></div>
<div><b>     1152921504606846975).</b></div><div><br></div><div>Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.</div><div><br></div><div>restarts (invokable by number or by possibly-abbreviated name):</div>
<div>  0: [RETRY] Retry calling the generic function.</div><div>  1: [ABORT] Exit debugger, returning to top level.</div><div><br></div><div>((SB-PCL::FAST-METHOD NO-APPLICABLE-METHOD (T))</div><div> #<unavailable argument></div>
<div> #<unavailable argument></div><div> #<STANDARD-GENERIC-FUNCTION SUBGRAPH-CONTAINING (0)>)[:EXTERNAL]</div><div><br></div>Thanks and Regards,<div>Deepak Surti<br>-- <br><a href="http://deepaksurti.com">http://deepaksurti.com</a><br>
You want to see a miracle. Then be the miracle.<br>
</div>