首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Findall内部

Findall内部
EN

Stack Overflow用户
提问于 2015-01-08 18:04:02
回答 1查看 168关注 0票数 1

有可能做成这样的东西吗?

--知识库--

代码语言:javascript
运行
复制
linha( 5,[bobigny_pablo_picasso,bobigny_pantin_raymon_queneau,eglise_de_pantin,hoche,
          porte_de_pantin,ourcq,laumiere,jaures,stalingrad,gare_du_nord,gare_de_l_est,
          jacques_bonsergent,republique,oberkampf,richard_lenoir,breguet_sabin,bastille,
          quai_de_la_rapee, gare_dausterlitz,saint_marcel,campo_formio,place_ditalie],
         [10,2]).

route(71,[louis_blanc,jaures,bolivar,buttes_chaumont,botzaris,place_des_fetes,
          pre_saint_gervais],
         [10,2]).

--知识库结束--

代码语言:javascript
运行
复制
sameRoute(EI,NF):-
    findall(Y,findall(Z,member(EI,route(Y,Z,_)),NumRout),NumRouteF),
    append(NumRout,NumRouteF,NF).

EI是一个站点,NF应该返回谓词路由的第一个参数--路由中的编号。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-08 18:34:47

从评论中可以看出,您需要通过给定的站点S的所有路线。

代码语言:javascript
运行
复制
findall(R, (route(R, Stations, _), member(S, Stations)), Routes).

目标是两个条件的结合:R是通过站点Stations列表的某个路由的数目,而给定的站点S是该列表的成员。

代码语言:javascript
运行
复制
?- S = louis_blanc, findall(R, (route(R, Stations, _), member(S, Stations)), Routes).
S = louis_blanc,
Routes = [7, 71].
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27846672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档