Nemerle :Nemerle

更新时间:2024-09-21 06:43

Nemerle是一种由微软提出的.NET平台上的新语言,由Wrocław大学的Kamil Skalski、Michał Moskal、Prof. Leszek Pacholski、Paweł Olszt等人发明。这是一种通用的、高级的、静态类型的编程语言,设计用于基于公共语言基础设施的平台(.NET/Mono)。它支持函数式、面向对象、面向方面、反射式和命令式特性,拥有简单的C#-like语法和强大的元编程系统。2012年6月,Nemerle的核心开发者被捷克软件开发公司JetBrains雇佣,他们专注于开发Nitra框架,用于实现现有和新的编程语言。然而,JetBrains似乎已经放弃或停止了Nitra和Nemerle的开发,Nitra自2017年以来没有更新,而Nemerle现在完全由俄罗斯软件开发网络独立维护,尽管没有发布重大更新,但开发进度非常缓慢。

简介

Nemerle是微软的研究项目之一,由 Wrocław 大学的Kamil Skalski、Michał Moskal、Prof. Leszek Pacholski、Paweł Olszt等人发明。目前最新版本是1.0。

Nemerle是一种多范型的语言(面向对象和函数式),完全支持编译器宏(后来更多的是LISP的变种,而不是C++),以及许多其他的东西。Nemerla与Microsoft Visual Studio 2010里发布的F#不同,后者是纯函数式语言。Nemerle提供了与C#近似的语法和强大的元编程系统。

特点

Nemerle语言具有与C#近似的语法,无疑这使得学习曲线大幅下降。

这里和C#不同的地方,首先我们通过关键字def定义了一个值sr,我们并没有声明它的类型,编译器会根据上下文自动赋予类型,我们称之为类型推断(Type inference)。而且new关键字也不需要了。

文本文件有多少行,read_lines()函数就要执行几次,像使用while循环一样,只不过稍微换了一种思路。这时候可能您会考虑到使用递归而影响效率的问题,事实是当一个函数主体在调用另一个函数后执行完毕,没有创建任何新的堆栈,这被称作尾端调用(Tail Call),所以这段代码和while循环在效率上一样的。Nemerle尤其注重将循环写成递归的深入的理解.

使用 Nemerle 宏(macros)可以产生新的语法。在Nemerler IDE中,添加一个macro project,并在你的程序里引用这个macro project.

参考资料

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}
友情链接: