【发布时间】:2016-05-01 23:12:42
【问题描述】:
我有两个执行非常相似的功能的 prolog 谓词,我想将它们合二为一以简化事情。 这些是谓词:
join(DELIM, [X|XS], RESULT) :-
join(DELIM, XS, RXS),
append([X, DELIM, RXS], RESULT).
join(DELIM, [END], END).
split(DELIM, [X|XS], RESULT) :-
append([X, DELIM, RXS], RESULT),
split(DELIM, XS, RXS).
split(DELIM, [END], END).
第一个采用分隔符和列表列表,并使用分隔符将它们连接在一起。另一个则相反,根据分隔符将一个列表拆分为其他列表的列表。即使他们的论点在同一个地方,如果我试图交换它们,它们也行不通。 如果有的话,我怎样才能将这两个谓词合二为一?
【问题讨论】:
-
它们不是 Prolog 中的 函数。它们是谓词。
标签: list split prolog predicate inverse