|
以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 人工智能 :: 机器学习|数据挖掘|进化计算 』 (http://bbs.xml.org.cn/list.asp?boardid=62) ---- [求助]一个简单的Prolog程序——求交集 (http://bbs.xml.org.cn/dispbbs.asp?boardid=62&rootid=&id=46388) |
|
-- 作者:zwldy001 -- 发布时间:5/4/2007 4:52:00 PM -- [求助]一个简单的Prolog程序——求交集 %求两个集合的并集 class set1 domains list = integer*. name=integer. predicates member:(name,list)nondeterm. %判断元素name是否在集合list中 intersection:(list,list)nondeterm. %求两个集合的并集 end class implement set1 clauses member(Name,[Name|_]):- stdio::write(Name), stdio::nl, !. member(Name,[_|T]):- member(Name,T). intersection([],[_|_]):- !. intersection([Name|_],Namelist):- member(Name,Namelist). intersection([_|T],Namelist):- intersection(T,Namelist). end implement goal console::init(), stdio::write("集合[45,21,4,6,8,5,2,5,9]与[8,5,1,9,21,4,7,5,45]的交集为:\n"), set1::intersection([45,21,4,6,8,5,2,5,9],[8,5,1,9,21,4,7,5,45]). 请大家帮我 看看上面的程序。想问问大家关于错误 The predicate '::goal/0', which is declared as 'procedure', is actually 'nondeterm' 应该如何解决。对于谓词模式如( Erroneous - Always exit failure - Always fail procedure - Always success determ - succeed or fails multi - 1 or more solutions (never fail) nondeterm - 0 or more solutions)应该怎么使用。小弟在这里拜谢了。 |
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
31.250ms |