0
こんにちは:) [オペレータ、Val_A、Val_B]という3つの要素のリストのために、それは私に操作の結果を与える述語をプログラミングする際にいくつかの困難を抱えています。Prolog - 再帰計算
?-calc([*,3,2],Res).
Res=6
しかし同時にVal_AまたはVal_Bが同じ形式で一覧することができ、そしてそれは結果を与える必要があります:たとえば
?-calc([*,[+,2,4],5],Res).
Res=30 ----->([*,6,5]=30)
?-calc([+,[+,2,[-,4,3]],[*,2,4]],Res).
Res=11 ----->([+,[+,2,1],8]=[+,3,8]=11)
私はすでに運転を計算する述語を持っています2間の数字:
operate(Op,[H|T],Res):-
Op == + -> Res is H+T;
Op == - -> Res is H-T;
Op == * -> Res is H*T;
Op ==/-> Res is H/T.
、と私はすでに2つの番号については、この「CALC」の述語を行うことができるんだけど、もっと複雑なリストについては、私はできません。私たちを手伝ってくれますか?
'calc'は2つの引数を持ちます。あなたのコードには、3があります。 –
申し訳ありませんが間違いでした、私はすでにそれを修正しました。 –