1

私はプロローグが初めてで、物事が実際にどのように機能するかを本当に理解していません。

簡素化されたソーシャル ネットワークから、次の知識ベースを提供します。

% user(nickname,email,city,friends_list)
user(nick0,mail0,lisbon,[nick1,nick8]).
user(nick1,mail1,lisbon,[nick0,nick3, nick5, nick9]).
user(nick2,mail2,london,[nick5,nick7,nick8]).
user(nick3,mail3,madrid,[nick1,nick4]).
user(nick4,mail4,paris,[nick1, nick3, nick2, nick5, nick6]).
user(nick5,mail5,madrid,[nick1, nick4, nick2]).
user(nick6,mail6,lisbon,[nick3,nick2]).
user(nick7,mail7,berlin,[nick3, nick5]).
user(nick8,mail8,berlin,[nick3, nick5, nick7]).
user(nick9,mail9,london,[nick1, nick4]).

places(NU,LC)ユーザー数がそれ以上の都市 (NU) を含む都市 (LC) のリストを生成する述語が必要です。

例:

場所 (0,LC)。

LC = [(リスボン,3), (ロンドン,2), (マドリード,2), (パリ,1), (ベルリン,2)]

次のコードがありますが、うまくいきません。助けていただければ幸いです。

places(NU,LC):-
findall(X,user(_,_,X,_),List),
findall(Z,(user(_,_,Z,_),member(Z,List), Z>=NU),LC).

単純な問題かもしれませんが、私はまだプロローグを学んでいます。

4

1 に答える 1