2012-01-06 24 views
0

我知道這是一個非常簡單的問題,但我似乎有一些問題。序言列表(使用詞幹函數)

我試圖阻止使用porter_stem單詞的列表,但我得到一個錯誤:

Out of local stack

這是我的代碼:

stemming([],[]). 
stemming([H|T], A) :- 
    stemming(T,Answer), 
    porter_stem(H,S), 
    append(Answer,S,A). 

基本上是這個僞代碼如下:

for all items in list 
    stem item 
    add item to list2 
    return list2 

任何人都可以請我指出正確的方向嗎?

+0

好了,你所產生的謂詞做的第一件事就是打電話制止,它應該是它所做的最後一件事。 – m09 2012-01-06 23:15:08

+0

謝謝,修正。仍然得到相同的錯誤,雖然:/ – Lilz 2012-01-07 00:07:52

+2

如果你想,我可以詳細給你一個正常的遞歸,但你嘗試使用'maplist/3'或同等取決於你的序言實現嗎?像'maplist(porter_stem,List,Result).'就足夠了。 – m09 2012-01-07 00:32:53

回答

1

考慮使用maplist/3或等價物,具體取決於您的序言實現:類似maplist(porter_stem, List, Result).就足夠了。

如果您有興趣學習如何建立一個正確的遞歸,發表評論,我會盡力擴大我的答案:)

+0

非常感謝!如果我能理解我粘貼的代碼有什麼問題,我會非常感激。 – Lilz 2012-01-07 20:27:59