0
私はプロローグで新しく、私は電卓をプログラムしたいと思います。そのためには、通常の形式(インフィクス形式)で書かれた、与えられた算術式を処理する述語をプログラムして、その接頭辞形式を得るようにする必要があります。 式の要素は、タームがターンリストに入るように、[operator、term1、term2]という形式の3つの要素を持つサブリストにグループ化されます。 解析が定義され、この例のように動作すべきであると呼ばれる述語:Prolog - 通常の形式で、数式計算のプレフィックス形式を取得するにはどうすればよいですか?
?-parse([1,+,2,*,3],PF).
PF=[+,1,[*,2,3]]
恐ろしいです。私はそれについて1つの質問しか持っていません:算術演算の正しい優先順位をどうやって知っていますか? –
また、表現=何をするのですか? –
@DiogoBoto:プロローグで定義された演算子を使用します。基本的には、式を持つ項を作成し、Prologは演算子の優先順位を知っています。次に、parse1はその式の接頭辞ツリーを作成するだけです。 univ(= ..)述部に関する情報については、解答のリンクを調べてください。 – gusbro