List Prolog列表(使用词干函数)

List Prolog列表(使用词干函数),list,prolog,List,Prolog,我知道这是一个非常简单的问题,但我似乎有一些问题 我试图使用porter_-stem生成一个单词列表,但我遇到了一个错误: 本地堆栈外 这是我的代码: stemming([],[]). stemming([H|T], A) :- stemming(T,Answer), porter_stem(H,S), append(Answer,S,A). 基本上,这方面的伪代码如下所示: for all items in list stem item add ite

我知道这是一个非常简单的问题,但我似乎有一些问题

我试图使用porter_-stem生成一个单词列表,但我遇到了一个错误:

本地堆栈外

这是我的代码:

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

有人能给我指出正确的方向吗?

考虑使用
maplist/3
或等效工具,具体取决于您的prolog实现:类似
maplist(porter\u-stem,List,Result)的工具。
就足够了


如果您对学习如何构建适当的递归感兴趣,请发表评论,我将尝试扩展我的答案:)

那么,词干谓词所做的第一件事就是调用词干,这应该是它所做的最后一件事。谢谢,修复了。但是仍然会出现相同的错误:/I如果您愿意,我可以向您详细说明正常递归,但是您是否尝试使用
maplist/3
或等效工具,具体取决于您的prolog实现?类似于
maplist(porter\u-stem,List,Result)的东西就足够了。哇,谢谢。我不知道地图列表存在:O@Mog:将其作为答案发布!非常感谢你!如果我能理解我粘贴的代码出了什么问题,我将非常感激。