新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> The future of AI, is the future of computer
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机理论与工程『 人工智能 :: 机器学习|数据挖掘|进化计算 』 → [求助]关于prolog编程的一个问题:procedure,determ 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 4521 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [求助]关于prolog编程的一个问题:procedure,determ 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     百分百 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:1
      积分:52
      门派:XML.ORG.CN
      注册:2011/10/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给百分百发送一个短消息 把百分百加入好友 查看百分百的个人资料 搜索百分百在『 人工智能 :: 机器学习|数据挖掘|进化计算 』的所有贴子 引用回复这个贴子 回复这个贴子 查看百分百的博客楼主
    发贴心情 [求助]关于prolog编程的一个问题:procedure,determ

    通过人工智能课上了解的这个软件,老师给我们留了一道作业:
    /* The tree database, please propose the prolog solution to answer the
    following 5 questions. */

    :- op(500,xfx,'is_parent').

    a is_parent b.    c is_parent g.     f is_parent l.     j is_parent q.
    a is_parent c.    c is_parent h.     f is_parent m.     j is_parent r.
    a is_parent d.    c is_parent i.     h is_parent n.     j is_parent s.
    b is_parent e.    d is_parent j.     i is_parent o.     m is_parent t.
    b is_parent f.    e is_parent k.     i is_parent p.


      
    /* 1: X and  Y are siblings  */
      
    /* 2: X and Y are on the same level in the tree. */


    /* 3: Depth of node in the tree. */
      
    /* 4: Locate node by finding a path from root down to the node. */
      
    /* 5: Calculate the height of a node, length of longest  path to  
        a leaf under the node.   */


    通过阅读prolog教程,我创建了一个console program,然后在其中的main.cl添加了如下程序:
    domains
        treetype=tree(string,treetype,treetype,treetype);empty().
    predicates
        run : core::runnable.
        create_tree:(string,treetype) procedure (i,o).
        insert_left:(treetype,treetype,treetype)determ (i,i,o).
        insert_center:(treetype,treetype,treetype)determ(i,i,o).
        insert_right:(treetype,treetype,treetype)determ (i,i,o).

    在其中的main.pro添加了如下程序:
    clauses
        classInfo(className, classVersion).
        create_tree(A,tree(A,empty,empty,empty)).
        insert_left(X,tree(A,_,B,C),tree(A,X,B,C)).
        insert_center(X,tree(A,B,_,C),tree(A,B,X,C)).
        insert_right(X,tree(A,B,C,_),tree(A,B,C,X)).
    clauses
        run():-
            console::init(),
           /*创建些一个单元数...*/
           create_tree("A",Atree),
            create_tree("B",Btree),
            create_tree("C",Ctree),
            create_tree("D",Dtree),
            create_tree("E",Etree),
            create_tree("F",Ftree),
            create_tree("G",Gtree),
            create_tree("H",Htree),
            create_tree("I",Itree),
            create_tree("J",Jtree),
            create_tree("K",Ktree),
             create_tree("L",Ltree),
            create_tree("M",Mtree),
            create_tree("N",Ntree),
            create_tree("O",Otree),
            create_tree("P",Ptree),
             create_tree("Q",Qtree),
            create_tree("R",Rtree),
            create_tree("S",Stree),
            create_tree("T",Ttree),
           /*再把它们连接在一起*/
           insert_left(Ttree,Mtree,Floor4),
           insert_left(Ktree,Etree,Floor31),
           insert_left(Ltree,Ftree,Floor32),
           insert_right(Floor4,Floor32,Floor33),
           insert_left(Ntree,Htree,Floor34),
           insert_left(Otree,Itree,Floor35),
           insert_right(Ptree,Floor35,Floor36),
           insert_left(Qtree,Jtree,Floor37),
           insert_center(Rtree,Floor37,Floor38),
           insert_right(Stree,Floor38,Floor39),
           insert_left(Floor31,Btree,Floor21),
           insert_right(Floor33,Floor21,Floor22),
           insert_left(Gtree,Ctree,Floor23),
           insert_center(Floor34,Floor23,Floor24),
           insert_right(Floor36,Floor24,Floor25),
           insert_left(Floor39,Dtree,Floor26),
           insert_left(Floor22,Atree,Floor11),
           insert_center(Floor25,Floor11,Floor12),
           insert_right(Floor26,Floor12,Floor13),
           /*打印结果*/
           
           stdIO::write(Floor13,'\n'),
           _=stdIO::readchar(),
            succeed(). % place your own code here
    end implement main
       目前我的程序的作用只是想数的每个节点的名字打印出来,但是老师出现一个让我很摸不着头脑的错误:
    main.pro(46,8) error c631: The predicate 'main::run/0', which is declared as 'procedure', is actually 'determ'
    点进去,错误显示在:
    /*再把它们连接在一起*/
           insert_left(Ttree,Mtree,Floor4),

    但是明明应该不是这个错误啊
    我不知道怎么回事啊。多谢大侠救助啊。感激不尽!


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2011/10/6 22:04:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 人工智能 :: 机器学习|数据挖掘|进化计算 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/8/6 8:57:39

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms