给出一个List和两个元素。首先,我需要检查这两个元素是否是列表的一部分。之后,检查元素是否Elem2
来自给定列表中的Elem1
之后。
我使用的谓词是weiterHinten
,带有3个参数。
例如:检查c是否在列表[a,c,b,a]中的b之后。
weiterHinten([H|T],H,B).
weiterHinten([H|T],A,B):-weiterHinten(T,A,B).
weiterHinten([a,c,b,a],b,c).
这个目标需要返回false。我知道,在我发现列表的Header等于A
后,我需要检查B
是否是尾部的成员列表。如果是,则表示B在列表中A
之后,但我不确定如何执行此操作。
我试过了:
weiterHinten([H|T],H,B):-member(B,T).
但无论何时我打电话给目标,无论Elem2
Elem1
之后是<ol class="household"></ol>
<form>
<div>
<label>Age
<input type="text" name="age">
</label>
</div>
<div>
<label>Relationship
<select name="rel">
<option value="">---</option>
<option value="self">Self</option>
<option value="spouse">Spouse</option>
<option value="child">Child</option>
<option value="parent">Parent</option>
<option value="grandparent">Grandparent</option>
<option value="other">Other</option>
</select>
</label>
</div>
<div>
<label>Smoker?
<input type="checkbox" name="smoker">
</label>
</div>
<div>
<button class="add">add</button>
</div>
<div>
<button type="submit">submit</button>
</div>
</form>
还是
答案 0 :(得分:1)
退出weiterHinten([H|T],H,B).
规则。这是weiterHinten([H|T],H,B) :- true.
的语法快捷方式,这是无稽之谈。
这对我有用:
weiterHinten([H|T],H,B) :- member(B, T).
weiterHinten([H|T],A,B) :- weiterHinten(T,A,B).
结果
| ?- weiterHinten([a,c,b,a],b,c).
no
| ?- weiterHinten([a,b,c,a],b,c).
true