Es defineix la funció !n (CAP, tema 1,
plana 25), de la següent manera (!n s’anomena
subfactorial):
Podem implementar-la, de manera molt ineficient, fent servir la definició matemàtica:
(defn subfact_recursiva [n]
(cond
(or (= n 0) (= n 2)) 1
(= n 1) 0
:else (*' (dec n)
(+' (subfact_recursiva (dec n))
(subfact_recursiva (- n 2))))))
Passeu aquesta funció a continuation passing style per
obtenir-ne la versió recursiva final. Anomeneu-la
subfact-cps.
Després, trampolinitzeu subfact-cps per no
obtenir l’error de Stack Overflow. Anomeneu-la
subfact-t.
Cal que envieu un fitxer amb la definició de les
dues funcions subfact-cps i
subfact-t.
Autoria: Jordi Delgado
Generació: 2026-01-25T13:14:01.054Z
© Jutge.org, 2006–2026.
https://jutge.org