Question

Je défini la procédure schéma pour revenir une autre procédure avec 2 paramètres:

(define (smooth f)
  (λ(x dx)(/ (+ (f (- x dx))
             (f x)
             (f (+ x dx)))
          3.0)))

si je cours cette procédure avec la procédure de péché avec 2 arguments 10 et 0,0001 alors il est ok

  ((smooth sin) 10 0.0001) ==> -0.544021109075966

si je cours cette procédure récursive, il a erreur

((smooth (smooth sin)) 10 0.0001)
==> procedure expects 2 arguments, given 1: #<promise:temp6>

Alors quelqu'un peut me dire où est mon problème? Merci d'avance !!!

PS: ceci est en dehors de l'exercice 1,44 dans SICP

Était-ce utile?

La solution

Il est assez simple, le résultat de (smooth sin) est une procédure 2 argument qui devient le F dans la LISSE externe et F est appliquée à une seule valeur.

La solution est de rendre le résultat de la place SMOOTH une procédure 1-argument, vous pouvez l'appliquer à plusieurs reprises.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top