`
alanwu
  • 浏览: 200627 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表
现在很多人都在宣传程序员要知道底层,要做真正程序员至少得精通C,操作系统也要了解一些。 我对这个观点有不同意见,但找不到支持者。有太多牛人说程序员要理解底层了。 今天看到一篇文章,有段说 The Danger of Understanding How Things Work http://www.javalimit.com/2010/01/actor-thinking.html 真是难得。 --
路过社报道:据相关人士称,《Programming Scala》中文版在Review阶段了,由inforQ的编辑翻译,质量应该有保证。 不过现在有两个《Programming Scala》,不知道他们翻译的是哪一本。 Oreilly那本有在线版,可能版权比较松 Ruby经典的书是在The Pragmatic Bookshelf,而InfoQ跟Ruby社区比较近,所以出他们家的书也未可知。 至于这两本书哪本好,他们各有千秋。 如果是Busy Java Developer, 有丰富的Java经验,想看一下Scala有什么不同的地方。那么推荐看Oreilly的,这本书是按照OO,FP这样的划分 ...
先来看一段Scala代码 scala> def f(`yield` : Int) = 5 match { case `yield` => "yup"; case _ => "nope"} f: (yield: Int)java.lang.String scala> f(5) res1: java.lang.String = yup 这段代码定义了一个函数,包含一个参数,函数主题是Pattern Match. 有趣的地方是参数变量是`yield`, 而且当传入5时,`yield`能match起来。 这是为什么呢 ...
工具: simple-build-tool(sbt) http://code.google.com/p/simple-build-tool/ A build tool for Scala Scala Build工具 SbtEclipsify http://github.com/musk/SbtEclipsify Plugin for sbt for creating .classpath and .project files for the Ecipse IDE. 测试: ScalaCheck http://code.google.com/p/scalacheck/ ScalaCheck i ...
这几个名字什么概念?以前不知其解,现在有一些理解不知道对不对,请大家讨论一下。 Currying:Currying是为了纪念美帝数学家Haskell Brooks Curry而命名的,所以想翻译成中文估计最好是音译了。它的基础是λ演算。 在计算机语言就是一个函数可以带多个参数列表,注意是多个参数列表,而不是多个参数。如def foo(x: Int)(y: Int)(z: Int){}。 这是一种能力表述,对应的函数称之为Curried function。但是Scala骨子里不是函数式语言,它是用OO实现的,而且是建立在JAVA虚拟机上, 于是Scala就提出了 Partially applie ...
在Scalacn中文社区,yiding He问Scala的null, None, Nil, Nothing, Unit,其实他总结的很全面。大家也讨论了PartialFunction什么意思,并且怎么翻译。另外现在wave提供很充分,基本上可以人人有份,只是不太会玩。这周51job上出现两个和Scala有 ...
本来想一个月写一个摘要回顾,但感觉时间太长了,记忆不好,而且刚好这周Scala发生了一些热闹的事情可以回顾一下。 Scala Day2010宣布了,明年中旬在瑞士洛桑举行,现在在征稿,大家对此都感到很兴奋。我想Scala Day会又产生影响力。 51CTO发布的文章《Scala IDE三剑客专访》记引起的话题,Netbean Scala创作者草原很耐心的回答问题,并且讲了一些Scala在项目中的使用心得。Margaret发布了Chat项目,我发布了easyscala,目的是提供在线运行Scala脚本。另外Java的轻量级Web框架----Play framework也引起大家热议,毕竟Ja ...
TIOBE一如既往得推出11月份编程语言排名, Java就像SUN一样在推出JDK5后日渐衰弱,希望在 Oracle财主的支持下会东风再起。 C再次证明了什么叫经久不衰。 很奇怪PASCAL居然一直在20帮内,还以为只是学校里用用的。 尽管对perl6很失望,但perl却一直压着python. 在20榜单内还有一些从来没有听过的,像SAS,Lua 由于iphone,Object-C风头狠劲,就像当年由于rails的ruby那样迅速蹿升。 Scala位置没挪过, 我大胆预测一下,明年Scala Day后会上到至少30内
javascript权威指南第五版 函数 一个函数是可以被不断调用,运行的JavaScript代码块。 一个被对象调用的函数成为方法 定义和调用函数 一个函数有:函数名,一个或多个参数名和用大括号组织起来的语句 定义函数的例子: //返回undefined function print(msg) { document.write(msg, "<br>"); } // 计算并返回 function distance(x1, y1, x2, y2) { var dx = x2 - x1; var dy = y2 - y ...
7.1 对象创建: 对象是组合的数据类型:他们集合了多个值到一个单元并且允许你用名字读写值。另一个解释是一个对象是无序属性的集合,每一个属性都有名字和对应的值。 不知道这个对象的描述是不是符合所有语言? 最简单创建对象的方法是用逗号分隔的名字/值对,用大括号包围起来。 var empty = {}; // 一个没有属性的对象 var point = { x:0, y:0 }; var circle = { x:point.x, y:point.y+1, radius:2 }; var homer = { "name": "Homer Simps ...
==和===都是判断两个值是否相同 对象,数组和函数用引用进行比较。只有两个变量指向同一个对象时才相等。如果想比较不同对象里的值是否相等,需要自定义方法。 ===  identity operator 标志位判断? 如果两个值的类型不同,则不同 如果两个值是number并且值相同,除非等于NaN,则相同。 如果两个值是strings并且值相同,则相同。注意string是每个字节进行比较,如果编码不同需要用String.localeCompare()。 如果两个值是boolean并且值相同,则相同 如果两个值都是null或者都是undefined,则相同 == equality opera ...
黑色字体代表书上的东西(当然是我翻译出来的,可以翻译会有误) 蓝色字体代表我的观点 红色字体代表我的疑问 数据类型和值 三个原生数据类型:numbers,strings of text(strings)和Boolean truth values(booleans).还定义了两个独立的数据类型:null和undefined,他们都只有一个值。 java的null不是数据类型,所以如果程序遇到null基本上就等于束手无措,ruby用nil表示空,是个对象有一些基本操作,scala更进一步有继承Option的None和空列表Nil,可以将空演绎得更充分。 JavaScript支持组合的数据类型 ...
《javascript权威指南第五版》是一本很好的JavaScript书,我之前对JavaScript仅限于会抄袭的水平。 现在看了一下这本书对JavaScript有了全新的了解,甚至对Java和Scala的理解也加深了些。 由于JavaScrip不是OO语言,但本书用大量篇幅介绍了如何使用JavaScript做到Java能做的。而JavaScript本身有很多非常灵活的语言机制是Java无法匹敌的。     字符集:Unicode字符集 Scala用的是Unicode Basic Multilingual Plane (BMP)字符集   大小写敏感   忽略空格,制 ...
原文有例子做解释,很容易理解。 有些观点和传统的想法,比如不要用接口,不要用set/get方法,多用静态方法,字段... 而大部分是放在哪里都适用的最佳实践。   两个原则: 1. 不要做你不需要的 2. 不要分配你可以避免的内存   摘要: 避免创建对象 使用本地方法(Native Methods) 用实际类比接口好 用静态方法,字段 避免使用get/set 缓存查询字段 将常量声明为final 使用增强的循环 避免枚举 在内类中使用包范围 避免浮点   一些性能数据     Action Time ...
《The Definitive Guide to Lift》12章介绍widgets的地方有些小错误,所以再重复写一下,以免大家为这小小错误浪费时间。   Lift的widget说起来很简单,就是用Scala包装了ajax代码。   一,使用TableSorter TableSorter在展示表格数据的时候非常有用,lift自带了TableSorter的widget.   Step 1: 初始化 在bootstrap.liftweb.Boot中: 引入   import net.liftweb.widgets.tablesorter._   再调用TableSo ...
Global site tag (gtag.js) - Google Analytics