`
RednaxelaFX
  • 浏览: 3053161 次
  • 性别: Icon_minigender_1
  • 来自: 海外
社区版块
存档分类
最新评论

DMD 2.007支持完整闭包了

    博客分类:
  • D
阅读更多
这是老消息...已经"过期"一个多星期了.
刚才去收集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
分享到:
评论
1 楼 hqs7636 2008-06-16  
好文

相关推荐

    DFL for DMD2.031

    《DFL for DMD2.031:深入解析D语言源码与工具的整合应用》 DFL,全称为D Foundation Library,是为D语言(D Programming Language)设计的一个强大的开源库,它旨在提供一系列实用的、高效的、易于使用的模块,以...

    dmd2.065_D语言2.065发布_396处修正和改进_

    DMD 2.065的发布可能会伴随着相关文档的更新,确保开发者能够获取最新的信息和技术支持。 8. **调试与测试**:编译器的调试支持也是关键部分。DMD 2.065可能增强了调试信息的生成,使得调试工具如GDB能够更好地工作...

    编译器源代码之:DMD(D语言)dmd.2.026

    DMD的版本dmd.2.026代表着这个编译器的一个特定迭代,它在开发过程中不断优化和增强,以适应D语言的发展和用户需求。 编译器是将高级编程语言转换为机器可执行代码的关键工具。DMD作为D语言的编译器,其源代码公开...

    d语言,dmd.2.042

    **DMD.2.042:D语言的官方编译器** DMD(Digital Mars D Compiler)是D语言的主要编译器,由沃德·坎宁安开发。版本2.042是这个编译器的一个特定更新,通常会包含性能改进、错误修复和新的语言特性的支持。对于...

    black_white_dmd.m

    用于控制sim显微镜中的dmd部分。 此代码可以控制dmd产生规则的图形。以控制显微镜光源形状

    Schematic-FLD3 DMD Board.pdf

    根据提供的文档信息,我们可以提取出以下有关DMD(Digital Micromirror Device)板的相关知识点,主要用于DLP(Digital Light Processing)技术,该技术是由TI(德州仪器)公司开发的。 首先,DMD板是DLP系统中的...

    Dynamic Mode Decomposition (DMD).zip

    然后,定义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特征值_selectps3_动态模态分解

    总的来说,这个“DMD.zip”文件包含了一套完整的DMD分析流程,从原始快照数据的处理到模态和特征值的提取,再到后处理步骤,旨在揭示数据背后的动态特性。通过解压并分析这个文件,我们可以深入理解DMD技术如何应用...

    DLP-0.45-WXGA-数字微镜器件-(DMD).pdf

    根据提供的文件信息,我们可以深入探讨数字微镜器件(DMD)的相关知识点,特别是关于DLP-0.45-WXGA型号的特点、应用以及技术规格。 ### 一、数字微镜器件(DMD)概述 数字微镜器件(Digital Micromirror Device,简称...

    dmd.rar_DMD

    标题中的“dmd.rar_DMD”很可能指的是“Dot Matrix Display”(点阵显示器)的库文件,用于在Arduino平台上操作矩阵显示屏。这个压缩包可能包含了实现这种显示效果所需的代码和其他资源。 Arduino DMD库是专门为在...

    DMD2-master_DMD_源码.zip

    DMD2支持多种平台,所以它的后端包含了针对不同架构的代码生成逻辑。 5. **运行时库(Runtime Library)**:DMD2的源码中也会包含D语言的运行时库,这是D程序运行所依赖的基础库,包括内存管理、异常处理、类型信息...

    DMD.zip_DMD_DMD时间积分_dmd 编程_dmd编程

    在压缩包"**DMD.zip**"中,可能包含了与DMD编程相关的软件工具、库文件、示例代码或文档,它们可以帮助开发者更好地理解和实现DMD的相关设置。通过深入学习这些资料,开发者可以熟练掌握DMD编程技巧,从而在实际项目...

    Hi3798CV2DMD.zip

    Hi3798CV2DMD是该系列硬件的一个特定版本,其硬件开发资料是开发者进行产品设计和系统集成的重要参考资料。 首先,硬件开发资料通常包括原理图和PCB设计两大部分。原理图是电路设计的基础,它清晰地展示了各个元...

    DMD_ROM.zip_DMD_DMD分析_mode decomposition_特征 降维_非定常

    2. "Simpler_DMD_Function_Usage.m":这是一个更简单的DMD用例,可能是为了教学或演示目的,展示了如何调用"DMD_rom.m"中的功能来分析数据。 3. "VelocityFieldData.mat":这是一个MATLAB数据文件,很可能包含了非定...

    VisualD-v1.0.1-beta1-dmd-2.093.0-ldc2-1.22.0.zip

    该资源提供的版本为1.0.1-beta1,与D编译器DMD 2.093.0和LDC 1.22.0兼容。在D语言的开发领域,Visual D以其用户友好的界面和强大的功能,深受开发者喜爱。 首先,Visual D的核心优势在于其对D语言的深度支持。它...

    DMD_Spreadsheets.zip

    2. SLOAN-INVESTORSII.xls:Sloan可能是指麻省理工学院斯隆管理学院,此文件可能涉及到投资者分析或者投资组合管理,帮助投资者评估投资策略,理解风险与回报的关系,进行有效的资产配置。 3. CASTRBDG.xls:可能是...

    DMD.rar_DMD 代码_dmd matlab程序_dmd分解_matlab dmd_分解

    动态模式分解的matlab 代码,有注释

    RGB_DMD-master.zip

    2. 在Arduino IDE中编写程序,首先包含库头文件,例如`#include <RGB_DMD.h>`。 3. 初始化显示对象,根据你的硬件连接设置参数,例如`RGB_DMD display(32, 16);`。 4. 使用库提供的函数来绘制图像或文本,如`display...

    POD_DMD-master.zip_CFD_DMD_POD_模态分析_降阶

    在本资源"POD_DMD-master.zip"中,包含的是一套针对CFD数据进行处理和分析的方法,主要涉及两种关键的技术:主成分分析(PCA,Principal Component Analysis)也称为POD( Proper Orthogonal Decomposition)和动态...

    DMD-master.zip

    【标题】"DMD-master.zip" 提供的资源主要针对P10(1R)V706模组,这是一个32X16单红色LED显示面板,它在电子工程和嵌入式系统领域有着广泛的应用。这个压缩包内包含了用于驱动这款显示面板的 Arduino 库,使得用户...

Global site tag (gtag.js) - Google Analytics