Prolog非法开始学期

时间:2010-02-11 11:40:51

标签: prolog

我正在尝试编写一些谓词来解决以下任务(learnprolognow.com)

假设我们获得了以下事实的知识库:

tran(eins,one).
tran(zwei,two).
tran(drei,three).
tran(vier,four).
tran(fuenf,five).
tran(sechs,six).
tran(sieben,seven).
tran(acht,eight).
tran(neun,nine).

编写一个谓词listtran(G,E),它将德语数字单词列表翻译成相应的英语数字单词列表。例如:

listtran([eins,neun,zwei],X).

应该给:

X = [one,nine,two].

我写过:

listtran(G,E):- G=[], E=[].  
listtran(G,E):- G=[First|T], tran(First, Mean), listtran(T, Eng), E = [Mean|Eng).

但是我在编译时得到错误:“非法开始学期”。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

最后一行中的最后一个括号应为正方形。

另外,您可能想要使用Prolog的模式匹配:

listtran([], []).
listtran([First|T], [Mean|EngT]):-
   tran(First, Mean),
   listtran(T, EngT).