【问题标题】:transforming rules into lists将规则转换为列表
【发布时间】:2012-04-19 22:18:06
【问题描述】:

我想从规则中获取数据到一个列表中以便进一步处理, 例如我有:

course_meetings(comm401,tutorial,t07,mohamed_esameldin,'t07 教程')。 course_meetings(comm401,教程,t08,sally_mahmoud,'t08 教程')。 course_meetings(comm401,教程,t09,mohamed_esameldin,'t09 教程')。 course_meetings(comm401,教程,t10,sally_mahmoud,'t10 教程')。 course_meetings(comm401,lecture,all_group_4,dr_amr_talaat,'lecture 1')。

我想将此规则转换为如下列表: [[comm401,tutorial,t07,mohamed_esameldin,'t07 教程'], [comm401,tutorial,t08,sally_mahmoud,'t08 教程'], [comm401,tutorial,t09,mohamed_esameldin,'t09 教程']]

提前感谢您的帮助我是序言的新手,希望我的问题不是模糊的, 另外,如果有更好的方法来处理这些数据,请指导我, 谢谢。

【问题讨论】:

    标签: list prolog


    【解决方案1】:

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

    【讨论】:

    • 它起作用了,但是它给出了前 4 个事实,然后开始以 [CSEN401|.....],[...|...]|... 的形式给我列表。 ..] 我尝试将堆栈大小增加到 4gb,但它仍然没有工作我使用了这个命令“#!/usr/bin/swipl -G4g -s”
    • 这只是 SWI-Prolog 压缩太大结构以进行显示的方式。价值观就在那里。例如?- findall(...),maplist(writeln,L).
    • 但如果我想在他们那里使用它们,例如我将不得不进行排列并测试某些约束是否有效
    猜你喜欢
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 2015-02-17
    • 1970-01-01
    • 2017-07-15
    相关资源
    最近更新 更多