我想了解map列表自定义谓词的自定义谓词可能是我的错误:
tf.reset_default_graph()
del model
sess = tf.Session()
K.set_session(sess)
K.clear_session()
K.get_session()
此查询有效:
generateProjection(TableOrTables/Selectors, Row, Result) :-
writeln(kiki),
writeln(TableOrTables),
writeln(Selectors),
writeln(Row),
Result = 1/2.
compute_projection(Rows, TableOrTables, Selectors, Result) :-
writeln(hello),
writeln(Rows),
writeln(Selectors),
maplist(
generateProjection(TableOrTables/Selectors),
Rows,
Result
).
这失败了:
generateProjection(foo/[foo/bar, foo/baz], [1, 2], Z).
感谢您的帮助
答案 0 :(得分:3)
让我们看看您的第二个查询:
?- compute_projection([[1,2],[3,4]], foo, [foo/bar,foo/baz], _A/_B).
maplist/3
关联了两个列表。
现在让我们再次来看谓词定义:
compute_projection(Rows, TableOrTables, Selectors, Result) :- maplist(generateProjection(TableOrTables/Selectors), Rows, Result).
所以Result
是一个列表,但是查询要求使用_/_
形式的术语。
这就是您的查询无法成功的原因。