Bir Listenin tüm üyeleri hakkında gerçekleri prolog olarak belirtmek istiyorum ve sonuçta ortaya çıkan bir birleşme var. Bir örnek olarak, ben her liste elemanı beşe eşit olduğunu iddia istiyorum, ama aşağıda oluşumların hiçbiri yapar: Bir yol istiyorumProlog'da tüm Liste üyeleriyle ilgili gerçekleri nasıl doğrulayabilirim?
?- L=[X,Y,Z], forall(member(E,L), E=5).
L = [_h27057686,_h27057704,_h27057722]
X = _h27057686
Y = _h27057704
Z = _h27057722
yes
?- L=[X,Y,Z], foreach(member(E,L), E=5).
L = [_h27057686,_h27057704,_h27057722]
X = _h27057686
Y = _h27057704
Z = _h27057722
yes
sorgu öyle ki X=5
, Y=5
poz, ve Z=5
.
'? - L = [X, Y, Z], maplist (= (5), L) .' – CapelliC
' forall' çok mantıklı geliyor. Ne yazık ki, öyle değil. – false
Bu kelimelerin genel kabul görmüş anlamında veya Prolog anlamında "assert" ve "facts" kullanıyor musunuz? Belirsizlik güçlüdür. –