J'essaie de définir une fonction qui marque les appels queue vs non-tail dans un schéma sexpr dans. Il serait défini comme suit:Fonction d'écriture qui différencie les appels queue et non-tail Schéma
TCS ::= SYMBOL | NUMBER | IF | FUNCTION-CALL
IF ::= (if TCS TCS TCS)
FUNCTION-CALL ::= (TCS TCS...)
un exemple d'une entrée/sortie serait:
(mark-tail-calls '(if (a (b c)) (e (f g) h) i) (j (k 7)))
=> (if (non-tail-call a (non-tail-call b c)) (non-tail-call e (non-tail-call f g) h) i) (tail-call j (non-tail-call k 7))
Je comprends la différence entre une queue et un appel non-queue, mais je suis finidng il difficile d'écrire la fonction étant donné que j'ai peu d'expérience avec le régime. Toute aide/pointe vers la bonne direction serait appréciée