gpt4 book ai didi

prolog - 在Prolog中切换语句

转载 作者:行者123 更新时间:2023-12-03 23:04:41 26 4
gpt4 key购买 nike

在Prolog谓词中,我经常像这样编写重复的条件语句,但我希望它们可以更简洁地编写:

output(Lang, Type, Output) :-   
(Lang = javascript ->
Output = ["function", Type];
Lang = ruby ->
Output = ["def", Type];
Lang = java ->
Output = [Type]).

是否可以用更简洁的switch语句替换这一系列条件语句?

最佳答案

在Prolog中,使用元谓词(将目标或谓词作为参数的谓词)定义自己的控制结构非常容易。

例如,您可以实现类似

switch(X, [
a : writeln(case1),
b : writeln(case2),
c : writeln(case3)
])

通过定义
switch(X, [Val:Goal|Cases]) :-
( X=Val ->
call(Goal)
;
switch(X, Cases)
).

如有必要,可以通过许多Prolog系统(ECLiPSe中的 inline/2或其他几个系统中的目标扩展)支持的编译时转换来提高效率。

通过运算符声明,您可以将语法调整为几乎所有您喜欢的内容。

关于prolog - 在Prolog中切换语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35764778/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com