2010-01-26 5 views
0
question

Je suis en train de mettre la déclaration suivante dans Dr.Scheme:Schéma Débutant

{{x avec {+ 5 5}} {+ xx}}

mais je me suis une erreur:

développer: identificateur non lié dans le module dans: avec

quelqu'un pourrait m'aider? Merci.

Répondre

7

Vous suivez un cours basé sur PLAI et vous confondez la langue dans laquelle vous travaillez (Scheme) avec la langue que vous implémentez (WAE ou l'une des extensions). Ces deux sont des choses très différentes, et le livre utilise des accolades dans ce dernier pour éviter toute confusion. Je peux vous dire par expérience de l'enseignement de cette classe à plusieurs reprises que c'est une confusion dangereuse, et plus tôt vous clarifierez les choses, mieux ce sera. Si vous laissez derrière vous les choses pourraient devenir plus confus dans un proche avenir. Donc, passez un peu de temps sur les différences entre les deux langues, et assurez-vous que vous savez quelles parties du livre parlent de quelle langue.

2

Êtes-vous essayer de le faire:

(let ([x (+ 5 5)]) (+ x x)) 

Il serait vraiment utile si vous pouvez dire ce que le dialecte du schéma que vous essayez d'utiliser.

+1

Juste pour clarifier: c'est * PAS * Schéma! –

+0

Cela peut expliquer sa question précédente. J'aimerais quand même savoir quel dialecte Scheme le Dr Scheme doit régler. –

+0

Ce n'est pas un dialecte du tout. C'est un langage (il y en a quelques-uns) qui est utilisé dans le manuel PLAI - il a une syntaxe entre parenthèses pour faciliter l'analyse (avec 'read'), mais des accolades sont utilisées pour le distinguer du schéma et empêcher une certaine confusion. Mais ce n'est qu'une convention, et les étudiants sont encore confus, c'est pourquoi la première chose que j'ai faite dans ma version du cours est de les appliquer et de les avoir toujours à partir de chaînes. –