2015-12-30 147 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