저는 Scheme을 처음 사용하고 숙제의 일부로 함수를 작성하는 데 어려움을 겪고 있습니다. 나는 그래프 G를 다음과 같은 형식으로리스트에 넣었다 : ((node1 node2 weight1) (node3 node4 weight2) ...). 이 그래프에서 모든 노드 (V)의 목록을 다음 형식으로 반환하는 함수를 작성하려고합니다. (node1 node2 node3 ...). 함수는 그래프 (G) 만 입력으로 가져올 수 있습니다. Scheme : 중첩 목록에서 요소 가져 오기
(define nodes-of
(lambda (G)
(if (null? G)
()
(begin (add-to-set (cadar G) (nodes-of (cdr G)))
(add-to-set (caar G) (nodes-of (cdr G))))))
나는이 같은,하지만 잘못된 생각 :
그래서 나는 여기에 내가 쓴거야 내가 V.에, G 내의 각 중첩 목록의 제 1 및 제 2 요소를 추가하여 반복적으로이 작업을 수행 할 수 있습니다 생각 첫 번째 재귀는 (cadar G) 만 포함하고 두 번째는 (caar G)를 포함하고, 반환 값은 begin (두 번째 문이 잘못 입력되지 않은 경우)에 의해 설정됩니다.
add-to-set은 숙제를 위해 이전에 작성한 기능으로, 목록에 요소가없는 경우 요소를 목록에 추가합니다. (예 : add-to-set n S, 이것은 S에 n을 더합니다)
아무도 도와 줄 수 있습니까? (btw 나는 여러개의 let 's를 사용할 수 없다. * 또는 set)
감사합니다. – bleyzn
@ bleyzn 도와 드리겠습니다. – oobivat