機能的なスタイルがあまり得意ではなく、集合関数を使いたくないので問題があります。再帰的に行うべきか、別の方法で行うべきか、私は本当に苦労しています。
次のように、リストにペアのコレクションがあります。
((4 2) (3 1) (3 2) (2 4) etc...)
このペア'(4 2)では、2番目の要素' 2'は、それが一致する他のペア(この場合は'(3 2))を教えてくれます。したがって、最初の要素(この場合は「4」と「3」)を使用して、これら2つのペアを足し合わせます。新しいペアは'(7 2)になりました。リスト内の他のペアについても同様です。最後に、次のように返されます。
((7 2) (3 1) (2 4))
私は注文をあまり気にしません。。私はすでに2つの異なるペアを追加する動作機能を持っています。この関数の唯一の仮定は、ペアが一致していることです。
したがって、私がやりたいのは、このペアのリストを操作して、これらの方法でリストを返すことです。
例:
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))
お手数をおかけしますが、よろしくお願いいたします。