2017-12-25 15 views
-1

findall/3句の中でこの合計を評価する方法はありますか?句の先頭の式を評価する

findall((A+C,[M,H|_]),(b_to_b(H,M,C),\+ member(M,[H|T])),R). 

ここではそれ以外の場合は私が持っている私は(1+3,List)のような値を取得し、私は問題が何であるかを理解するが、ショートカットがいいだろう代わりに(1+3)

の値4を得るように、私はいくつかのショートカットを探していますリスト全体を見直してください。それはうまくありません。

..., 
findall((S,[M,H|_]),(b_to_b(H,M,C),\+ member(M,[H|T]), S is A+C),R). 

効率ヒント:あなたはまた、/ memberchkにメンバー/ 2を変更する必要があり

おかげ

答えて

3

は、Aが既にだけゴールにテンプレートから評価を移動し、数値にバインドされていると仮定すると、 2。