Tôi cần phải làm bài tập về nhà này bằng cách sử dụng prolog (SWI-hương vị) và không thể có được đầu của tôi xung quanh một số điều.Prolog, danh sách xây dựng với mệnh đề có điều kiện
Ví dụ: nếu tôi muốn lặp qua danh sách và thêm các phần tử của nó vào danh sách khác, nhưng CHỈ nếu chúng đáp ứng một số điều kiện nhất định, tôi sẽ làm như thế nào? Tôi có thể thêm tất cả, hoặc không, nhưng nếu tôi thêm mệnh đề kiểm tra tình trạng này, toàn bộ đệ quy hóa ra là "sai". Tôi hiểu tại sao điều này là, nhưng không có ý tưởng làm thế nào để sửa chữa nó. Về cơ bản những gì tôi muốn là:
goal(Stuff) :- do_something(X),
only_do_this_if_something(Y),
always_do_this(Z).
Hiện nay, nếu only_do_this_if_something(Y)
thất bại, cũng always_do_this(Z)
doesnt xảy ra như toàn bộ mục tiêu biến sai ...
+1 vì trung thực về việc cần trợ giúp cho bài tập về nhà. – csl
có thể trùng lặp của [vòng lặp Prolog và báo cáo điều kiện?] (Http://stackoverflow.com/questions/3964420/prolog-loops-and-conditional-statements) –
@GuyC: Không có gì đặc trưng cho SWI ở đây! – false