Scheme에서 더 많은 목록을 교차 시키려고하고 있는데 약간의 도움이 필요합니다. 목록은 다음과 같이 :Scheme에 더 많은 목록을 교차 시킴
처음 두 :
(((?x john) (?city new-york))
((?x mike) (?city chicago))
((?x mary) (?city london)))
및
(((?city chicago))
((?city new-york)))
내가 (예를 들어 A) 첫 번째 목록에서와 참조하십시오있을 경우 모든 목록에서 볼 필요가 A와 B의 공통점이 적어도 하나가되도록 두 번째 목록에 B를 말하십시오. 그러한 요소가 없으면 결과 목록에는 A가 포함되지 않습니다. 위에서 언급 한 두 목록의 결과는 다음과 같습니다.
(((?x john) (?city new-york))
((?x mike) (?city chicago)))
목록 ((?x mary) (?city london))
에는 (((?city chicago) ((?city new-york)))
의 목록과 공통점이 없습니다.
(((?x mike) (?game tennis))
((?x john) (?game air-hockey)))
결과 목록에서 첫 번째 목록이 ((?x john) (?city new-york))
가 ((?x john) (?game air-hockey))
공통점 (?x john)
이 때문에 내 새로운 결과 목록 첫 번째 목록에있는 것 :
이제 결과 목록은 다음 목록을 교차해야합니다 다음과 같이 보입니다 : ((?x john) (?city new-york) (?game air-hockey))
. 두 번째 목록이 패턴에 따라, 나는 ((?x mike) (?city chicago) (?game tennis))
을 얻을 것이다 나의 새로운 결과 목록은 다음과 같습니다
(((?x john) (?city new-york) (?game air-hockey))
((?x mike) (?city chicago) (?game tennis)))
이 공통으로 적어도 하나 개의 요소가 매 2 개 목록을 위해 내가 그들의 재회를해야하고 있다는 것을 의미 새로운 결과 목록에 추가하십시오.
이제 제 질문은 Scheme에서 구현할 때 약간의 도움이 필요합니까? 나는 코드를 사용하지 않고 어떤 기능을 사용해야하는지에 대한 몇 가지 아이디어 만 갖고 싶다. :)
답장을 보내 주셔서 감사합니다. 나는 노동 조합과 교차점을위한 함수를 작성해야한다고 생각합니다.하지만 그렇게 어려운 것은 아닙니다. 나는 또한 set-first와 set-rest가 car와 cdr에 해당한다고 가정한다. – pixie
맞습니다. 알고리즘은 동일하지만, 그게 중요한 것입니다. 건배! –