我对函数式风格不太精通,也不想使用任何集合函数,所以我遇到了问题。我真的很挣扎我应该递归还是以不同的方式做。
我在列表中有一组对,如下所示:
((4 2) (3 1) (3 2) (2 4) etc...)
在这对“(4 2)”中,第二个元素“2”告诉我它与哪些其他对匹配,在本例中为“(3 2)。所以,我使用它们的第一个元素将这两对加在一起,在这种情况下,它是“4”和“3”。新的对现在是 '(7 2)。对于列表中的其他对,依此类推。最后,它应该返回:
((7 2) (3 1) (2 4))
我不太关心订单。. 我已经有一个添加两个不同对的工作函数。这个函数的唯一假设是这些对是匹配的。
因此,我想要做的是操纵这个对列表以这些方式返回一个列表。
例子:
take the list ((4 2) (3 1) (3 2) (2 4))
matching-pairs: '(4 2) and '(3 2)
and then return --> ((7 2) (3 1) (2 4))
take the list ((2 1) (3 2) (1 2) (5 1) (6 3))
matching-pairs: '(2 1) and '(5 1)
'(3 2) and '(1 2)
and then return --> ((7 1) (4 2) (6 3))
感谢您的时间和努力。