Twee discrete afbeeldingen $$f$$ en $$g$$ met beiden als argumenten gehele getallen, worden respectievelijk via de woordenboeken $$v$$ en $$w$$ gespecificeerd ($$v$$ bevat dus $$i \mapsto f(i)$$ en $$w$$ bevat dus $$i \mapsto g(i)$$). Programmeer een functie samenstelling() die een woordenboek als resultaat teruggeeft, waarbij dit resultaat de samengestelde afbeelding $$f \circ g$$ voorstelt (dit woordenboek bevat dus $$i \mapsto (f \circ g)(i)$$). Hiertoe bouw je een nieuw woordenboek met alle argumenten van $$g$$, en bereken je voor die argumenten de samenstelling $$f$$ na $$g$$. Indien je hierbij een argument ontmoet waarvoor de samenstelling niet bestaat, dan codeer je dit door als waarde '?' in het woordenboek te stockeren.

Argumenten

Twee argumenten, namelijk:

Resultaat

Een woordenboek dat de samengestelde functie "$$f$$ na $$g$$" voorstelt, zoals hierboven gedefinieerd. Bemerk dat de volgorde van samenstelling uiteraard van groot belang is ("$$f$$ na $$g$$" is in het algemeen geval niet gelijk aan "$$g$$ na $$f$$").

Voorbeeld

 
v = {i:2*i for i in range(-5, 5)}
w = {i:i + 1 for i in range(-5, 5)}

samenstelling(v, w) = {0: 2, 1: 4, 2: 6, 3: 8, 4: '?', -1: 0, -5: -8, -4: -6, -3: -4, -2: -2}
samenstelling(w, v) = {0: 1, 1: 3, 2: 5, 3: '?', 4: '?', -1: -1, -5: '?', -4: '?', -3: '?', -2: -3}