プロローグの述語- これに基づいて構築された質問には十分な明確さがなかったため、文脈に沿って質問を投稿しています。
これが質問です。これまでに行ったことと、苦労していることを投稿します。
シナリオ (静かで奇妙なもの)
ジェームズとヴィクトリアは結婚していますが、ヴィクトリアはカートに恋をしています。彼女はヘンリーにもっと興味を持っていますが、彼はまだカイリーと結婚していて気にかけているので、カートは彼女を愛していません。アーサーはロマンチックにビクトリアに傾倒していますが、ジェームズがロマンチックに感じているクリスタルと結婚しているにもかかわらず、ビクトリアも愛しているヘンリーと競争しています。
1] Prolog 述語を使用してこの情報を表現します。2 つの述語名のみを使用します。
これは私の解釈です
is_Married([ジェームズ、ビクトリア]、[カート、カイリー]、[ヘンリー、クリスタル])。
is_inLove([Victoria,Curt],[Kylie,Henry],[Arthur,Victoria],[Henry,Victoria],[James,Victoria]).
2 番目の述語については、[Curt,Kylie] をシナリオで「まだ気にかけている」と言ったので、入れるべきかどうかもわかりません。
2] 両方の参加者がお互いではなく他の人にロマンチックな傾向がある場合、既婚者は岩の上にあります. Prolog ルールはこのステートメントをどのように表現できるでしょうか。
私の答え
∀∃x: is_married(X,Y) ∧¬ is_inLove(X,Y) ∨ is_inLove(Y,X) → on_rocks (x)
二人の参加者に結婚を並べて表現する方法について、私は少し混乱しています。
3]愛の輪は、人Xが誰かを愛し、その人が他の人を愛し、その連鎖の誰かが人Xを愛するまで続きます。愛の輪が1つしか存在しないと仮定して、この輪を見つけるプロローグルールを書きます関係者のリストを作成します。
私の答え
write_list([X|A,B,C]:-
書き込み(X)
writelist(X,Tail)。