我的Google Reader分享

Tuesday, July 29, 2008

Erlang中的快排,近段时间的总结

  最近两个星期在看Erlang,蛮有新鲜感的一种语言。由于看的英文版,看的比较慢,也看的比较仔细的,简直可以算是一字不漏的看了。前几天刚看到List Comprehensions,由它实现的一个qsort,我觉得在某种程序上也算是能体现Erlang的特点了。


qsort([]) -> [];
qsort([Pivot|T]) ->
qsort([X || X <- T, X < Pivot])
++ [Pivot] ++
qsort([X || X <- T, X >= Pivot]).



  Erlang似乎常常用到类似于这种的递归。说实话,我数据结构和算法学的是不怎么样,对于快排,我其实也是一知半解。不过Erlang这种形式,我倒是一看就明白了。现在要我用C来实现下快排应该没什么问题了。

  今天忽然想到,3月到现在,我到底学了点什么。想了半天,我是越想越心虚,感觉自己好像什么都没有学到。所以我决定写一个日志来仔细的想想自己有哪些进步,来填补下我的心虚。
  3月到4月,我看来只能心虚了,我完全不记得我到底是在干嘛了。看了一点操作系统和Linux Kernel的东西,无心的看了下Android的NotePad的代码,Ruby Quiz没有进行下去。其他时间我甚至不知道用在哪了。
  4月到5月,我记得我的笔记本上双系统的时候应该是在这段时间,Ubuntu8.04记得好像是4月底正式发布的,而我是从Beta3开始用的,想来应该是在4月初或者3月底吧。这个月大概(只能说大概)接触了REST,听说REST是在一年前Robbin在“侠客行”上的演讲,虽然我最后没有去听,但是印在入场券上我看到了。然后一年后我不知怎么的,开始找REST的资料了。而这时候Rails已经是2.0了,其默认创建的项目就是基于REST的,这对我上手倒是帮了很大的忙。然后这个月干的事情应该就是再次熟悉Linux的各个方面吧。
  5月到6月,开始了一个自己的项目。有感于学校教材的昂贵和大四那帮人走人时对没用的书的处理方式(竟然按斤卖了。。。。),决定做一个系统,利用学校内部网络,让大家把没用的书分享出来。然后大概做了20多天吧,具体时间我无聊时上Github看看就知道,因为我每天都有Push上去。这个系统应该是5月下旬开始的,那上,中旬我在干嘛呢。。。想不出来。。。
  6月到7月,6月上,中旬我是在做我的那个项目,因为时间离的近,所以我段时间的存在感还比较实在,没有很大心虚的感觉。。。然后下旬开始应付考试了,换句话说,开始放荡了。一考试,我就特想玩游戏。。。。记不清了,好像又玩的三国志11和英雄无敌吧。三国志11我就是流氓,用流言流死人。。。英雄无敌我就是卡死人了,我的电脑啊。。。。。
  7月到现在(其实也就是到8月了,还剩两天,我还能干出舍惊天到地的?),前面半个月还是考试+课程设计。课程设计用我的那个Alpha都算不上的项目就过关了,而且我自信比其他人做的应该要好,因为我可是花了时间的了,不比他们好也太没面子了。。。然后到现在,在做一个基于ArcGIS的项目。晚上在看Programming Erlang和RESTful Web Service这两本书,玩DS上的口袋妖怪和EVE ONLINE。
  对了,提一提EVE ONLINE,从去年暑假开始玩的一个网游。其实两年前就玩过,后来因为觉得卡贵没玩,去年8月1号决心玩了。然后半年时间浪费了,今年以来,改过自新变成蹲站党。最近每天玩上4个小时左右,但因为昨天网卡(学校的上网包月卡,70RMB/月)到期,将会再次成为蹲站党。。。。这应该算是个好消息。。。。。
  虽然进步很慢,但是进步还是有的,正所谓欲速则不达,就这样吧。在就这样的基础上再提高下自己利用时间的效率就好了。

No comments: