Nemerle

✍ dations ◷ 2025-09-12 14:00:26 #Nemerle

Nemerle,是微软公司提出的.NET平台上的新语言,由Wrocław大学的Kamil Skalski、Michał Moskal、Prof. Leszek Pacholski、Paweł Olszt等人发明。

一个传统的"Hello World!"可以被写成C#-like的风格:

class Hello {  static Main () : void {    System.Console.WriteLine("Hello, world!");  }}

或更简捷:

System.Console.WriteLine("Hello, world!");

宏的例子

宏可以让你拥有自己的模板(boilerplate),具有静态检查功能。

例如,使用Nemerle macros可以将SQL可成:

ExecuteReaderLoop ("SELECT firstname, lastname FROM employee WHERE firstname = $myparm", dbcon,{  System.Console.WriteLine ("Name: {0} {1}", firstname, lastname) });

取代

string sql = "SELECT firstname, lastname FROM employee WHERE firstname = :a";NpgsqlCommand dbcmd = new NpgsqlCommand(sql, dbcon, dbtran);dbcmd.Parameters.Add("a", myparm);NpgsqlReader reader = dbcmd.ExecuteReader();while(reader.Read()) {  string firstname = reader.GetString (0);  string lastname = reader.GetString (1);  System.Console.WriteLine ("Name: {0} {1}", firstname, lastname) }reader.Close();dbcmd.Dispose();

上述的代码不仅只是隐藏部分的动作,更可增加编译器在查询字符串上的效率。这里使用的变量,由数据库回传行资料(columns)。ExecuteReaderLoop宏会产生一些你想要的粗略的代码。而且,链接数据库并检查SQL语法是否合法。

使用Nemerle宏(macros)可以产生更新式的语法(syntax):

macro ReverseFor(i, begin, body) syntax("ford", "(", i, ";", begin, ")", body){  <>}

定义一个宏ford(EXPR ; EXPR)EXPR syntax可被写成

ford(i ; n)print (i);

Nemerle结合ASP.NET

Nemerle可以被直接嵌入ASP.NET:

<%@ Page Language="Nemerle" %> <script runat="server">      Page_Load(_ : object, _ : EventArgs): void {         Message.Text = $"You last accessed this page at: $(DateTime.Now)";     }      EnterBtn_Click(_ : object, _ : EventArgs): void {         Message.Text = $"Hi $(Name.Text), welcome to ASP.NET!";     }  </script>  <html>     <body>         <form runat="server">             Please enter your name: <asp:TextBox ID="Name" runat="server" />             <asp:Button OnClick="EnterBtn_Click" Text="Enter" runat="server" />              <p><asp:Label ID="Message" runat="server" /></p>         </form>     </body> </html>

...或者储成单一文件格式,一行完成:

<%@ Page Language="Nemerle" Src="test.n" Inherits="Test" %>

PInvoke

Nemerle有更多原生平台库(native platform libraries)。风格非常类似C#'s和其它.NET平台上的语言。下面是最简单的例子:

相关

  • 甲酸甲酸(英文:Formic acid)又称作蚁酸,化学式为HCOOH。蚂蚁和蜜蜂等膜翅目昆虫的分泌液中含有蚁酸,当初人们蒸馏蚂蚁时制得蚁酸,故有此名。甲酸无色而有刺激气味,且有腐蚀性,人类皮肤接
  • 氯化氯化(英语:Chlorination)是水的净化中的一个过程,在这个过程中,氯气被加入水中。被处理后的水能够更有效的预防疾病传染。游泳池中的水也经常是通过氯化消毒。
  • 疏水相互作用疏水效应(英语:Hydrophobic effect)又称疏水性效应,属于非极性分子的一种性质,会使这些分子在水溶液中具有自我聚集(self-associate)的特性。例如油在水中会呈现与水分离的现象。此
  • 中江要介中江要介(1922年12月30日-2014年3月6日),日本大阪人,日本外交家、曾任日本驻中国大使。毕业于旧制第三高等学校和京都大学法学部。1947年,进入日本外务省工作,历任日本外务省亚洲局
  • 超纯水超纯水(Ultrapure water)极为接近高纯度的水,即除了氢离子与氢氧根离子,几乎没有任何其他电解质存在的水。在制造处理过程后能尽可能将溶在水中或在水中散播的各种杂质除去,包含
  • 胡小孩胡小孩(1930年5月1日-),原名胡啸孩,上海人,中国越剧编剧。1971年,任浙江越剧团编剧。代表作品有越剧《花烛泪》《大观园》《三篙恨》,戏曲电视剧《一鸟九命》《孟丽君》《陈三两》《
  • SyslogSyslog常被称为系统日志或系统记录,是一种用来在互联网协议(TCP/IP)的网络中传递记录档消息的标准。这个词汇常用来指涉实际的syslog 协议,或者那些提交syslog消息的应用程序或
  • 见识城邦见识城邦是由中信出版集团旗下的编辑工作室,出版过一系列人文社科与自然科学的学术科普书籍。见识丛书是见识城邦主打的人文社科品牌丛书,截至2020年 (2020-Missing required
  • 吴恺吴恺(1917年-2000年),原名吴宝丰,男,天津人,中华人民共和国军事人物,中国人民解放军少将,曾任中国人民解放军空军军训部部长。
  • 黄绍熙黄绍熙(1994年5月6日-) ,为台湾棒球选手,为前兴农牛二垒手、“内野魔术师”黄忠义之子,目前效力于中华职棒统一7-ELEVEn狮,守备位置为外野手。于2019年季中选秀会被统一7-ELEVEn狮