2012-04-19 97 views
0

我想从规则数据到一个列表,以便进行进一步处理, ,比如我有:转换规则转换成列表

course_meetings(comm401,教程,T07,mohamed_esameldin,“教程T07”) 。course_meetings(comm401,教程,t08,sally_mahmoud,'教程t08')。course_meetings(comm401,tutorial,t09,mohamed_esameldin,'t09教程')。course_meetings(comm401,tutorial,t10,sally_mahmoud,'t10教程')。course_meetings(comm401,讲座,all_group_4,dr_amr_talaat,'讲座1')。

我想要改造这个规则到像这样的列表: [comm401,教程,T07,mohamed_esameldin, '教程T07'],[comm401,教程,T08,sally_mahmoud, '教程T08'], [comm401,教程,T09,mohamed_esameldin,“教程T09”]

预先感谢您的帮助,我在序言新手,希望我的问题心不是含糊其辞, 还是否有更好的方式来处理这个数据请直接给我, 谢谢。

回答

0

尝试?- findall([A,B,C,D,E], course_meetings(A,B,C,D,E), L).

+0

非常感谢该WAAS有用:d 感谢 – 2012-04-20 10:56:17

+0

但是,由于它的工作,它给人的第一4个事实然后开始给我列出的形式[CSEN401 | .....],[.. 。| ...] | ......] 我试着将堆栈大小增加到4GB,但它仍然没有工作 我用这个命令“#!/ usr/bin/swipl -G4g -s” – 2012-04-20 11:19:39

+0

这只是方式SWI-Prolog压缩过大的结构进行显示。价值在那里。尝试实例'? - findall(...),maplist(writeln,L)。' – CapelliC 2012-04-20 11:24:51