【发布时间】:2026-01-06 23:30:01
【问题描述】:
我在 Prolog 上有以下代码
concat([], [], []).
concat([], [H|T], [H|T2]) :- concat([], T, T2).
concat([H|T], L2, [H|T2]) :- concat(T, L2, T2).
is_ordered([]).
is_ordered([_X]).
is_ordered([X,Y|Tail]) :- X =< Y, is_ordered([Y|Tail]).
我尝试获取适合concat 和is_ordered 的X 示例。
当我输入时
concat([1, 2, 3], [4, 4, 4], X)
我得到了结果,但是当我尝试对 is_ordered 做同样的事情时
is_ordered(X)
简单示例[]和[_1784]后出现错误
{
"code":500,
"message":"Unknown error term: assertion_error(fail,pengines:event_term_to_json_data(error('583c29ce-fa49-4b06-971f-1c928260dcac',error(instantiation_error,context(prolog_stack([frame(2,call(system:(=<)/2),_714=<_716),frame(1,pred_line(\"is_ordered/1\",'pengine://583c29ce-fa49-4b06-971f-1c928260dcac/src':31),is_ordered([_756,_762]))]),_676))),_656,'json-html'))"
}
为什么会发生这种情况?
【问题讨论】:
-
有用生成器的规则是什么?例如。 1 约束?
标签: prolog