这是老消息...已经"过期"一个多星期了.
刚才去收集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
分享到:
相关推荐
《DFL for DMD2.031:深入解析D语言源码与工具的整合应用》 DFL,全称为D Foundation Library,是为D语言(D Programming Language)设计的一个强大的开源库,它旨在提供一系列实用的、高效的、易于使用的模块,以...
DMD 2.065的发布可能会伴随着相关文档的更新,确保开发者能够获取最新的信息和技术支持。 8. **调试与测试**:编译器的调试支持也是关键部分。DMD 2.065可能增强了调试信息的生成,使得调试工具如GDB能够更好地工作...
DMD的版本dmd.2.026代表着这个编译器的一个特定迭代,它在开发过程中不断优化和增强,以适应D语言的发展和用户需求。 编译器是将高级编程语言转换为机器可执行代码的关键工具。DMD作为D语言的编译器,其源代码公开...
**DMD.2.042:D语言的官方编译器** DMD(Digital Mars D Compiler)是D语言的主要编译器,由沃德·坎宁安开发。版本2.042是这个编译器的一个特定更新,通常会包含性能改进、错误修复和新的语言特性的支持。对于...
用于控制sim显微镜中的dmd部分。 此代码可以控制dmd产生规则的图形。以控制显微镜光源形状
根据提供的文档信息,我们可以提取出以下有关DMD(Digital Micromirror Device)板的相关知识点,主要用于DLP(Digital Light Processing)技术,该技术是由TI(德州仪器)公司开发的。 首先,DMD板是DLP系统中的...
然后,定义DMD矩阵Ω为V_kΣ_k^1/2,DMD模式φ_i可以通过计算ΩU(:,i)获得,其中i=1,2,...,k。 5. **DMD频率和增益**:DMD频率ω_i可通过解复数特征值问题ΩΩ^Hλ=σ_i^2计算得出,对应于每个DMD模式的频率。DMD...
总的来说,这个“DMD.zip”文件包含了一套完整的DMD分析流程,从原始快照数据的处理到模态和特征值的提取,再到后处理步骤,旨在揭示数据背后的动态特性。通过解压并分析这个文件,我们可以深入理解DMD技术如何应用...
根据提供的文件信息,我们可以深入探讨数字微镜器件(DMD)的相关知识点,特别是关于DLP-0.45-WXGA型号的特点、应用以及技术规格。 ### 一、数字微镜器件(DMD)概述 数字微镜器件(Digital Micromirror Device,简称...
标题中的“dmd.rar_DMD”很可能指的是“Dot Matrix Display”(点阵显示器)的库文件,用于在Arduino平台上操作矩阵显示屏。这个压缩包可能包含了实现这种显示效果所需的代码和其他资源。 Arduino DMD库是专门为在...
DMD2支持多种平台,所以它的后端包含了针对不同架构的代码生成逻辑。 5. **运行时库(Runtime Library)**:DMD2的源码中也会包含D语言的运行时库,这是D程序运行所依赖的基础库,包括内存管理、异常处理、类型信息...
在压缩包"**DMD.zip**"中,可能包含了与DMD编程相关的软件工具、库文件、示例代码或文档,它们可以帮助开发者更好地理解和实现DMD的相关设置。通过深入学习这些资料,开发者可以熟练掌握DMD编程技巧,从而在实际项目...
Hi3798CV2DMD是该系列硬件的一个特定版本,其硬件开发资料是开发者进行产品设计和系统集成的重要参考资料。 首先,硬件开发资料通常包括原理图和PCB设计两大部分。原理图是电路设计的基础,它清晰地展示了各个元...
2. "Simpler_DMD_Function_Usage.m":这是一个更简单的DMD用例,可能是为了教学或演示目的,展示了如何调用"DMD_rom.m"中的功能来分析数据。 3. "VelocityFieldData.mat":这是一个MATLAB数据文件,很可能包含了非定...
该资源提供的版本为1.0.1-beta1,与D编译器DMD 2.093.0和LDC 1.22.0兼容。在D语言的开发领域,Visual D以其用户友好的界面和强大的功能,深受开发者喜爱。 首先,Visual D的核心优势在于其对D语言的深度支持。它...
2. SLOAN-INVESTORSII.xls:Sloan可能是指麻省理工学院斯隆管理学院,此文件可能涉及到投资者分析或者投资组合管理,帮助投资者评估投资策略,理解风险与回报的关系,进行有效的资产配置。 3. CASTRBDG.xls:可能是...
动态模式分解的matlab 代码,有注释
2. 在Arduino IDE中编写程序,首先包含库头文件,例如`#include <RGB_DMD.h>`。 3. 初始化显示对象,根据你的硬件连接设置参数,例如`RGB_DMD display(32, 16);`。 4. 使用库提供的函数来绘制图像或文本,如`display...
在本资源"POD_DMD-master.zip"中,包含的是一套针对CFD数据进行处理和分析的方法,主要涉及两种关键的技术:主成分分析(PCA,Principal Component Analysis)也称为POD( Proper Orthogonal Decomposition)和动态...
【标题】"DMD-master.zip" 提供的资源主要针对P10(1R)V706模组,这是一个32X16单红色LED显示面板,它在电子工程和嵌入式系统领域有着广泛的应用。这个压缩包内包含了用于驱动这款显示面板的 Arduino 库,使得用户...