2010-12-30 6 views
1

私は、外部ファイルから単語を読み込み、対応する数値に変換して値を計算するプログラムを作っています。 私は単語を読むことができました..それらを文字に変換してください..今私は2つの問題に直面しました: 1 - 私は以前に方程式を読み取って結果を出力する別のプログラムを書きました。私が数値を読み込んでからisを使って評価すると、別のアプローチを試してみました。 。 ..だからプロローグ内の文字列の値

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

新しい連結式は、文字列であると私は値を取得カントそれのために..どのように文字列の値を持つことができます!例えば、私の式は「+ 1 2」..です

atom_to_term(atom,Term,[]). 

文字列は用語..です 私は言葉を送信しますと答えは

おかげ

答えて

5

はOKこの式を評価します機能..その後、私は言葉である、新しい値を保存する変数を指定し、三番目のパラメータは役に立たない..ですちょうど空のリストを置く。.. 結果が..です

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

完了! 4時間の検索の後!