Jim's blog -- Focus On ERP/.NET/BI

Dynamics AX ERP, .NET, Business Intelligence

导航

随笔分类 -  IronPython

函数编程之闭包漫谈(Closure)
摘要:在函数编程中经常用到闭包。闭包是什么,它是怎么产生的及用来解决什么问题呢。给出字面的定义先:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)。这个从字面上很难理解,特别对于一直使用命令式语言进行编程的程序员们。本文将结合实例代码进行解释。 阅读全文

posted @ 2008-08-05 09:38 季方亮 阅读(12433) 评论(5) 推荐(2) 编辑

软件设计之道:平衡之术
摘要:.NET程序员是幸福的,基本上是被MS给宠坏了,老板们是乐坏了,可是身为程序员却高兴不起来(个中原因自己体会吧)。借着MS的开源春风,让我们看看 MS到底是怎么宠坏我们这些可爱的.NET程序员的。在MS设计产品时遵循哪些规则,又是怎么解决一些棘手的问题的。让我们看看微软的完全开源的 IronPython,看看MS是怎么耍宝的。 阅读全文

posted @ 2008-07-31 09:53 季方亮 阅读(3622) 评论(10) 推荐(0) 编辑

Inside IronPython: IronPython AST语法树(2/2)
摘要:接上篇: Inside IronPython: IronPython AST语法树(1/2)。 ASTs简介: 当 ipy.exe 执行demo.py的时候,IronPython语言自身的实现和DLR共同参与源代码的编译处理。从基本层面上来讲,编译器是流水化作业的:从语法解析器生成描述源代码的特定数据结构开始。这个数据结构是个抽象语法树(abstract syntax tree),简称为AST。编译器在完成代码分析阶段后将转换AST或者建立新的数据结构,然后再基于此结果,编译器产生机器码或者虚拟机的中间语言(IL)。 阅读全文

posted @ 2008-07-30 07:41 季方亮 阅读(2503) 评论(5) 推荐(0) 编辑

Inside IronPython: IronPython AST语法树(1/2)
摘要:.NET平台上早期的各个动态语言的实现相对独立:例如IronPython的1.x实现,基本上都是在.NET CLR的基础上直接构建各自的实现。到了IronPython2.x时,动态语言的架构发生了很大变化,这个变化具有革命意义,就像现在的CLR一样重要和伟大(CLR统一了静态语言,GC,JIT…省去废话x万字)。这个变化就是微软引入了DLR(动态语言运行时:Dynamic Language Runtime),同时又在.NET CLR中添加了一组核心特性以更好地支持动态语言。DLR是建立在CLR之上的,面向所有在.NET平台上运行的动态语言提供服务。当然,DLR也是跨平台的(Mono)! 阅读全文

posted @ 2008-07-29 08:59 季方亮 阅读(2682) 评论(6) 推荐(0) 编辑

函数编程之高阶函数漫谈(Higher order functions)
摘要:IronPython和Python一样都支持多种编程范式(OOP,FP...)。本文讲述当用IronPython进行函数编程时,用到的几个基本元素:内置高阶函数(操作函数的函数:一个函数可以接受另一个函数作为参数,也可以把一个函数作为结果来返回)。这几个函数的共同点是第一个参数都是函数,并且都是对列表数据进行操作,代码简洁明了。 阅读全文

posted @ 2008-07-26 18:20 季方亮 阅读(3328) 评论(7) 推荐(1) 编辑

生成器方法漫谈(generator function)
摘要:生成器方法(generator function)作为一个可选特性在Python2.2中首次出现,2.3版本中内置支持了此特性,yield成为了关键字,生成器在后续版本中得到增强(比如增加了异常处理等特性)。C#2.0中也引入类似特性(迭代器),这两者之间有不少相似之处。本文针对IronPython 2.0 beta3进行讨论。 阅读全文

posted @ 2008-07-23 15:08 季方亮 阅读(2607) 评论(0) 推荐(0) 编辑

函数和方法装饰漫谈(Function decorator)
摘要:Python/IronPython中的“function decorator”漫谈。基于IronPython 2.0 Beta 3。 阅读全文

posted @ 2008-07-22 07:29 季方亮 阅读(3196) 评论(4) 推荐(0) 编辑