私はPrologで国の周辺を見つけようとしています。Prolog - リストメンバーの合計
私は条件を満たしセットにすべての項目のリストを与える完成述語
borders(Country1, Country2, Length)
と
setof(Item, Condition, Set)
を持っています。
circumference(C, Country) :-
setof(X, borders(Country,_,X), Set),
sum_list(Set,C).
sum_list([], 0).
sum_list([H|T], C) :-
sum_list(T, Rest),
C is H + Rest.
...しかし、私は取得しています出力は国境述語で2国間だけの長さである:私はこれをやってみました円周を取得するには
私のテスト:
?– circumference(C,angola).
C = 201 ;
C = 1376 ;
C = 2511 ;
C = 1110.
ルール:
borders(angola,namibia,1376).
borders(angola,congo,201).
borders(angola,zambia,1110).
borders(angola,zaire,2511).
はなぜC
は、これらの数字の合計となっていないのですか?
なぜ「findall/3」ですか?なぜあなたは 'border(_、Country、X)'もチェックしないのですか? –
私は、特定の国を混乱させている国々を探しています。 –
すべての問題を解決したことを見つける、ありがとう! –