2015-12-30 216 views
0

我想了解用户如何输入一个句子,然后在Prolog中将其拆分为单独的单词。 例如, 用户输入了这句话:“”和“硬件”,“电脑”,“由”,如何在Prolog中拆分字符串

可有人请解释如何用户:“计算机是由硬件” 我想这句话划分到输入句子,然后把它分成Prolog?

+1

请出示该解决方案您尝试过以及遇到的具体问题。 – lurker

+0

至少,请详细说明您希望如何与程序交互:您如何称呼它?你期望输出什么?什么是有效的输入,什么不是?这也可能有助于弄清楚[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)。 –

回答

1

如果句子包含在列表(即,[电脑,包括的,硬件]),那么你可以使用:

split(L,Result) :- 
    splitacc(L, [], Result). 
splitacc([], Acc, Result) :- 
    Result=Acc. 
splitacc([H|T], Acc, Result) :- 
    append(Acc, [[H]], NewAcc), 
    splitacc(T, NewAcc, Result). 

例如:

?- split([a, computer, consists, hardware],L). 
L = [[a],[computer],[consists],[hardware]] ? 
+0

谢谢,但我想知道用户如何输入句子,然后使用序言在查询屏幕中拆分:? - 什么是计算机?用户应该以这种方式回答这个问题:计算机由硬件组成。用户输入此答案后,序言分为[a],[电脑],[由],[],[硬件]。 – student