Perchè se la fai sui numeri pari devi provvedere a 2 casi base e non uno solo: se provi a farlo andare con un numero pari, sottraendo sempre 2 non arriverai mai ad ottenere 1, ma 0
codice:
(define prova2 
   (lambda (n) 
      (if (= n 1)
         1
         (if (= n 0)
            1
            (* n (prova2(- n 2))) 
         ) 
      )
   ) 
)
Hai a disposizione anche la funzione cond che ti può essere utile se hai più di un caso da testare (è l'equivalente dello switch() di C e Java).


Ciao.