2
私はプロローグとの課題で苦労しています。化合物述語とのセット
だから、私は、プロローグで、次の事実のデータベースを持っている:で
L= [(33332, 3.5), (33336, 4.0)].
:ここ
student(name(doe, [john]), 33332, ['CSI1120']).
student(name(doe, [jane]), 33336, ['CSI1120']).
evaluation('CSI1120', homework(1), ['Prolog', database ], 5).
mark('CSI1120', 33332, homework(1), 3.5).
mark('CSI1120', 33336, homework(1), 4.0).
私の目標は、このような
?- returnAllMarks('CSI1120',homework(1),L).
戻り値として述語listAllMarks/3
を作成することですこの問題を解決するために、私はプロローグを利用することを考えていました、私は次の述語に来ました。
returnAllMarks(C,H,L):- setof(L,mark(C,_,H,X),[L|X]).
これは機能していないようですが、述部は常にfalseを返します。私はこれが複合語述語に対してsetofを使用しているという事実によると思われますが、私は間違っている可能性があります(私はまだプロローグの初期段階です)。
あなたはアイディアを持っていますか?私はすべての角度からこの問題を見て、私はここで立ち往生しています
はありがとう