12 2009 档案
摘要:前两天在园子里看到一篇用C#实现Python Decorator的文章,看的时候就在想应该可以用C# 4.0 Dynamic来搞。今中午有时间试了一下,果然可以. 本文假设你己安装了VS2010 Beta2和 IronPython 2.6 for .NET 4.0 Beta2, 首先创建一个Console App并引用如下Dll (可以在你的IronPython安装目录中找到)IronPython...
阅读全文
摘要:随着微软对动态语言,函数式语言的重视,我们(微软阵营的.Net程度员)也越来越多的开始使用这些"新的语言,新的思想"来完成我们的一些日常工作。对我们来说,动态语言有IronPython, IronRuby可选,函数式语言有F#。F#功能是很强大,但对新手来说,其代码可读性就差一些,经常能看到人抱怨F#写出来的代码丑陋,看不懂。 相反,Python作为一种动态语言,语法简洁,写出的代码也是相当漂亮,...
阅读全文
摘要:F#中的lambda表达式很容易给人造成误解,好象它只支持单行的语句,其实不然,它是可以支持多行的,比如let f = (fun () -> (printf "hello" printfn " world" )) 只是上面这种写法实在太过难看,所以一般推荐写成一行,语句之间用分号隔开,letf = (fun() -> ( printf "hello"; printfn "world")...
阅读全文
摘要:实箭头: 虚线:Dependence,表示一种比较弱的依赖关系,某个类在某一段时间可能使用另一个类。 实线:表示两个对象间的关系,根据对象间有无主从(Owner)关系,可有分为两类 无主从关系: Association, 两个对象的创建和销毁都彼此独立 有主从关系, 既一个对象被创建后只能属于创建它的对象,不能同时被别的对象使用。根据两个对象的生命周期的依赖关系又可分为两类: ...
阅读全文
摘要:Python中函数支持default value和keyword arguments(类似于C# 4.0中引入的named and optional parameters). 唯一需要注意的地方就是在一个scope中默认值只会被计算一次,所以如果默认值是可变容器时,要注意side effects.比如def f(a, L=[]): L.append(a) return Lf(1) // ret...
阅读全文
摘要:使用Ctrl + TAB可以在多个打开的代码文件间切换,结合方向键还可以有多个己经打开的tool window间切换
阅读全文