好久没有来了,不是因为没有在学习,相反的,因为一直在学习新的东西,并且还没有形成理论体系,所以没办法写下心得。前些日子,打算学习一下java,但是因为自己脚本习惯已深,所以先学习groovy,再慢慢过渡到java上去。建议打算学习groovy的朋友看mastering groovy in action,至于那本programming groovy就不要看了,出的时间太早,有一些版本上的冲突。
在以前用perl写脚本的日子里,一直被并行或者说进程间的通信问题所困扰。一些信号处理的办法或者Tk中解决通信的办法,在windows下无法很好实现,或多或少存在一些奇怪的问题。这也是为什么下定决心要精通另外一种语言的原因。java无疑是最好的选择。但是在一次浏览csdn的时候,发现了一篇介绍erlang的文章。erlang是天然用来解决并行的语言,因其高效稳定的运行,被用在电信等需要大量并行计算的通信行业中。爱立信和北电的一些产品正是应用了erlang。如此看来,erlang不正是我们这些学通信出身的人的好帮手吗?于是二话不说,下了本programming erlang开始看起来了。
相比较perl,c,java,erlang更接近与haskell,而更有意思的是,出于安全考虑,变量一旦赋值就无法更改。递归被频繁地使用。比如说一个快排算法。
qsort(_, []) -> [];
qsort([Pivat|T]) ->
qsort([X || X <- T, X < Pivat])
++ [Pivat] ++
qsort([X || X <- T, X >= Pivat]).
总而言之,与平常接触的一些编程语言习惯格格不入,完全从零开始。当然数据结构的一些概念和算法还是相通的,看来大学时好好学习是非常重要的。