12 2012 档案
摘要:第三天Prolog真是一位解题高手,Sudoku是我非常喜欢的一个游戏,Programming Logically!不过对于不熟悉Prolog谓词的而言,又成了一个比较头疼所事,如果不告诉我可以用fd_all_difference来判断一个列表中元素没有重复值,真的不会想到用“谓词”。其实觉得用Prolog来解决一下AI问题是很有用的,比如做一个棋类游戏的AI,告诉Prolog规则,恐怕就能将我击败:-| 先找了一下Prolog的输出谓词: geto(X) 如 X与输入流中的下一个字符匹配,则目标成功。 get(X) 如 X与输入流中的下一个打印字符匹配,则目标成功 skip(X...
阅读全文
摘要:发现了一个有趣的事,在用我的vim编辑Prolog程序的时候, 是默认将其用Perl的高亮进行处理的。(UPDATE: 发现.pl的确是unix/perl的后缀,.pro才是正确的prolog程序后缀名)做翻转一个列表中的元素次序由于Head表示的就是列表中的第一个元素,而Tail表示的列表中剩余的几个元素,那么要翻转列表中的元素次序,就先将Head取出并将其放入翻转的列表之中,并对此进行递归操作。%-- 给定几个翻转列表的事实reserve([], []).reserve([a],[a]).reserve([a,b,c], [c,b,a]).reserve(List, ReserveList
阅读全文
摘要:第一天看到‘地图着色’那个例子的时候觉得prolog这下牛逼了……的确,只要通过描述的事实,就能将其填色 :)这里介绍一下怎么用prolog来解地图填色问题:在prolog中,只需要描述颜色的种类、以及各个区域的接壤问题即可。different(red, green).different(red, blue).different(green, red).different(green, blue).different(blue, red).different(blue, green).coloring(Alabama, Mississippi, Georgia, Tennessee, Flor
阅读全文
摘要:第三天做改进本节生成的XML程序,增加空格以显示缩进结构。Builder := Object cloneBuilder depth ::= 0Builder forward := method( #depth ::= 0 prefix := (" " repeated (self depth)) writeln(prefix, "<", call message name, ">") #depth = (depth +1) self setDepth(self depth + 1) call message argumen
阅读全文
摘要:第二天今天做这些花了几乎一个下午……主要原因是要查iolanguage.org上的文档,而且那个文档不知道为什么不能搜索 :( 这“一天”的内容,关于Io的控制语句、文件IO、错误处理、列表都有涉及。个人比较喜欢的是Io的控制语句,写在一个()里,没有else,条件、语句都用一个comma隔开的感觉很不错;有点不理解的是关于Io的消息机制和反射,虽然书上的例子举的比较清楚,可是还是觉得将其称之为“反射”比较不习惯;再者,关于原型和对象的关系,感觉就是类的继承(?!)……好吧,学习一门语言的过程还是挺欢乐的~计算fibonacci数列 #循环的方法array := List clonearray
阅读全文
摘要:关于Io programming language起初看到Io这两个字母的时候,的确觉得比较奇怪,因为为世人所熟知的Io也即Input/output(还记得那门IO系统课……那神奇的汇编)。关于Io的资料比较少,当然,Io有他风格简洁(btw, 字好小)的官网:iolanguage.org。Io的源代码托管在Github上,star一下表示关注 : )另外有关Io的history以及特性介绍可以参照wikipedia:Io(programming language)第一天答对1+1求值,然后对1+"one"求值。Io是强类型还是弱类型?用代码验证。 Io> 1+&qu
阅读全文
摘要:第二天找Ruby用代码块和不用代码块读取文件的方法,用代码块有什么好处?用代码块读取文件的方法:File.open("text.txt") do |f| puts f.getsend不用代码块读取文件的方法:f = File.new("text.txt","r")puts f.getsf.close使用代码块,是一种用来打开一个单独文件的方法,而且可以在一个地方(代码块内)对该文件进行操作。相比与不用代码块而言,使用代码块显得比较干净利落。如何把散列表转换成数组?数组能转换成散列表吗?散列表转换成数组:hash.to_a #其中每个元
阅读全文

浙公网安备 33010602011771号