I’m trying to develop a Scheme function that will take a graph as defined:
(define aGraph
'{{USA {Canada Mexico}}
{Mexico {USA}}
{Canada {USA}}})
and find the number of nodes bordering the specified node of the graph. I believe I am approaching this problem the wrong way; here is what I have done so far:
(define (nodes n graph)
(cond ((null? n) '())
(else
(cond ((eqv? n (first graph)) (length (first graph)))
(else (nodes n (rest graph)))))))
Needless to say, it doesn’t work (The function can be called like this: (nodes ‘USA aGraph), which in theory should return 2). What advice do you have to offer so that I may get on the right track?
Let’s examine this line:
You are treating
(first graph)as both the node key in(eqv? n (first graph))and as the bordering nodes in(length (first graph))— perhaps this will work better: