Nemerle

✍ dations ◷ 2025-07-04 17:30:17 #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平台上的语言。下面是最简单的例子:

相关

  • 闪光灯记忆闪光灯记忆是一个非常详细、生动的“快照”,记录了一段令人惊讶和重要(或情绪激动)新闻的时刻和环境。 术语“闪光灯记忆”表示照片有惊奇、无差别描绘、细节、短促的性质;然而,
  • 西班牙银行西班牙银行(西班牙语:Banco de España)为西班牙的国家中央银行。由卡洛斯三世于1782年在马德里成立,现今为欧洲中央银行体系的成员。它也为西班牙银行系统的国家主管机关。
  • 中国士族世系图列表中国士族世系图列表,收录中国中古时代士族的世系图,世系上限一般为汉朝,下限不超过士族的灭亡期五代十国。
  • 黄乃黄乃(1917年-2004年),原名黄一寰,曾用名黄鼐,男,湖南长沙人,中国汉语盲文专家、盲人教育家,中国残疾人联合会副主席,第二、三、四、五、六、七届全国政协委员,被誉为“汉语盲文之父”。
  • 萨姆纳·拜伦·迈尔斯萨姆纳·拜伦·迈尔斯(Sumner Byron Myers,1910年-1955年),美国数学家,专长拓扑学。他在哈佛大学跟随马斯顿·莫尔斯学习,1932年博士毕业。自1934年到1936年他在普林斯顿大学当博士
  • 加藤唯史加藤唯史(日语:加藤 唯史、本名:加藤 正,1949年2月17日-2017年10月15日)、日本漫画家。北海道函馆市出身。代表作是《怪厨博士》(ザ・シェフ)系列。
  • Tomica Earth Granner 地球防卫队《Tomica Earth Granner 地球防卫队》(トミカ絆合体アースグランナー)是Takara Tomy为纪念其多美小汽车产品线发售50周年而推出的电视动画系列,也是继《多美卡超级救援DRIVE HE
  • 十年…你还好吗?《十年…你还好吗?》(英文:If Only I Could),新加坡新传媒私人有限公司跨年代电视剧,亦是新传媒第四部穿越剧,由瑞恩、蔡琦慧、陈邦鋆及黄俊雄领衔主演,监制为张龙敏。故事讲述中学
  • 郭怡伶小Call(1983年8月13日-),本名郭怡伶,台湾女艺人。曾是“嘻哈甜心”的成员;担任过艺人宣传。转战综艺圈后开始出名。2014年戒酒后开始与李芳瑜等人学习潜水,在7月考取初级open water执照。※《宅之小恶魔:小call有时变态,有时候坏》全裸写真书一开放预购,马上稳坐网络书店写真类书籍的冠军宝座,不只宅男为之疯狂,甚至北美和中国朋友也纷纷留言,希望能有国际宅配服务。※2012年成为台湾原创男性杂志《USEXY尤物》一月刊封面女郎,随刊另附赠《小CALL─恋爱中的变态》漏网镜头写真书,为其全裸
  • 沃伦·伯明翰沃伦·伯明翰(英语:Warren Birmingham,1962年8月22日-),澳大利亚男子曲棍球运动员。他曾代表澳大利亚国家队参加1988年和1992年夏季奥林匹克运动会曲棍球比赛,其中1992年奥运会获得一枚银牌。