这是老消息...已经"过期"一个多星期了.
刚才去收集D语言的动向消息时才看到,突然觉得...好感动(?)
原本还在抱怨D语言缺乏完整的闭包,只有个半调子的"动态闭包",结果现在就有了.
不得不说,这真是种神奇的语言...
官网上关于2.007的新增特性的描述:
引用
New/Changed Features
- Functors now supported by std.traits.ReturnType().
- Transitive const now leaves invariants intact in the tail.
- Added overloadable unary * operation as opStar().
- Full closure support added.
- Data items in static data segment >= 16 bytes in size are now paragraph aligned.
马上来看看下面这段代码的运行是否正常:(表现闭包的经典简短代码...)
int delegate(int) add(int lhs) {
int foo(int rhs) {
return lhs + rhs;
}
return &foo;
}
void main(char[][] args) {
int delegate(int) addFive = add(5);
int twelve = addFive(7);
printf("5 + 7 is %d", twelve);
}
引用
K:\D\workspace\test>test
5 + 7 is 12
很好很强大...我真是没什么好抱怨的了,几乎所有的抱怨看来都能有被解决的一天 (泪
当然上面的add函数还可以进一步被简化如下:
int delegate(int) add(int lhs) {
return delegate int (int rhs) {
return lhs + rhs;
};
}
既然我们不会在add内调用这个内部函数,当然也没必要给它一个名字.能用匿名函数字面量的话自然是最好 ^ ^
Cheers
分享到:
相关推荐
NULL 博文链接:https://godspeedhu.iteye.com/blog/423419
D语言编译器DMD 2.065已经发布了,D语言经过近年来的努力终于取得不错的成绩!这个版本包含了大量问题修复和改进,真是值得敬佩
编译器源代码之:DMD(D语言)dmd.2.026。vc6编译通过
Dynamic Mode Decomposition (DMD).zip
用于控制sim显微镜中的dmd部分。 此代码可以控制dmd产生规则的图形。以控制显微镜光源形状
Schematic-FLD3 DMD Board DLP TI
D语言是结合了C#、Java和 C++以及PHP、Python等动态语言的特性于一身,且不依赖于虚拟机, 而是作为可执行程序单独来运行的,这样它的效率非常高。
DMD2-master_DMD_源码.zip
用于了解DMD的文档。 dmd可以用于结构光超分辨显微镜。
快照数据的动态模态分解,获得基模态和对应的特征值,包括频率和增长率,以及数据后处理。
Hi3798CV200硬件HDK 海思网络机顶盒方案硬件开发资料 硬件版本号:CV2DMD 包含原理图和PCB(PCB包含PADS和ALLEGRO两个版本)
动态模式分解的matlab 代码,有注释
Arduino dmd library for matrix display
数字微镜DMD编程,包括设置帧频、画面大小和积分时间等参数
数据决策与模型工具模板 (DMD spreadsheets),用于决策分析一整套的工具表格,涵盖经济、营销、人力资源等
Dynamic_Mode_Decomposition_DMD_源码.zip
DMD回归模型PPT课件.pptx
本资源为Visual D 1.0.1-beta1安装包,或者亦可以直接去GitHub下载其他的版本的安装包.https://github.com/dlang/visuald/releases
DMD芯片显示原理详解.doc
installer, 适用于各种系统的dmd安装程序 安装程序这里存储库宿主用于构建DMD安装程序和软件包的脚本。要下载现成的安装安装程序或者包,请访问 dlang.org 下载页面。要了解有关安装脚本的更多信息,请访问 install....