2010-12-30 2 views
1

Je fais un programme qui lit les mots d'un fichier externe, puis les traduit au nombre correspondant, puis calcule la valeur .. calculatrice de mots !! j'ai réussi à lire les mots .. les convertir en lettres .. maintenant j'ai fait face à deux problèmes: 1 - j'ai écrit précédemment un autre programme qui lit les équations et imprime les résultats .. lorsque j'essaie d'utiliser le même programme pour donner le résultat pour l'équation j'ai imprimé il donne une erreur qu'il ne peut pas lire de ce fichier .. fin inattendue du fichier .. 2 - j'ai essayé une autre approche .. quand j'ai lu les nombres construire l'équation puis l'évaluer en utilisant l'est. . so ..Valeur de la chaîne dans Prolog

calculate([Word|Rest],X) :- 
    word_to_number(Word,Symbol), 
    concat(X,Symbol,NewX), 
    calculate(Rest,NewX), 
    Result is NewX, 
    print(Result), 

ERROR: is/2: Arguments are not sufficiently instantiated

maintenant la nouvelle équation est une chaîne concaténée et je ne peux pas obtenir la valeur pour cela .. comment peut avoir la valeur de la chaîne !! et d'évaluer cette équation

Merci

Répondre

5

ok la réponse est:

atom_to_term(atom,Term,[]). 

la chaîne est un terme .. par exemple mon équation est '2 + 1' .. i envoyer le terme la fonction .. alors je précise la variable que je veux enregistrer la nouvelle valeur qui est le terme, le troisième paramètre est inutile .. il suffit de mettre une liste vide .. le résultat est ..

Term = 2+1 ... then Result is Term. Result is 3.

Fait !! Après 4 heures de recherche !!

Questions connexes