Nemerle

✍ dations ◷ 2025-10-25 18:35:44 #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平台上的语言。下面是最简单的例子:

相关

  • 宝来溪宝来溪,位于台湾南部,属于高屏溪水系,为荖浓溪第二大支流,河长28公里,流域面积133平方公里,分布于高雄市六龟区东北端及桃源区中南部。主流发源于卑南主山北侧,先向北复转西北流,至
  • 彩虹龙彩虹龙属(属名:Caihong)是生存于侏罗纪晚期的近鸟类恐龙,化石发现于中国河北省东部,属于近鸟龙科,并和该科的晓廷龙存在姐妹群的亲缘关系。保存良好的化石显示,彩虹龙在眼睛前方有
  • 安可安可拉斯维加斯(Encore Las Vegas,又译万利拉斯维加斯)是一间位于位于内华达州拉斯维加斯赌城大道上的一间高级度假村、赌场和饭店。度假村与其姊妹饭店永利拉斯维加斯相连;两间
  • 职业医学职业医学(英语:Occupational medicine,缩写:OM),直到1960年被称为工业医学,是医学的一个分支,与维护工作场所的健康有关,包括疾病和伤害的预防和治疗,其次要目标是维持和提高工作场
  • 欧洲粉蝶欧洲粉蝶又名欧洲凤蝶(学名:),是粉蝶科中的一种蝴蝶,也是其模式种。欧洲粉蝶雄蝶的上面是奶白色的。前翅基部及沿肋脉有黑色斑点,第二翅脉顶端及末端呈黑色,一些标本在第三间隙有窄
  • 鸡子大饼鸡子大饼,又称葱油鸡子大饼,是中国江苏无锡的传统地方小吃,其创制历史可追溯自民国初年。无锡鸡子大饼始于1915年,首创者为一葱油饼小贩范盘福,因其制作葱油饼的手艺极好,旁人便多
  • 周炜周炜可以指:
  • 李洛洋李洛洋(1987年2月2日-),本名刘禄存,旧艺名小禄,是台湾Channel V节目模范棒棒堂第六代成员,曾是Choc7成员之一,现为S.E.C 超能儿的主唱。原就读南华大学外国语文学系后来转学到醒吾技
  • 陈秀榕陈秀榕(1953年12月-),女,福建福州人,中华人民共和国政治人物。1978年,任共青团福州市委常委、青工部部长。1983年升任共青团福州市委副书记、书记。1994年,任福建省妇联主任。1997年,担任龙岩市委副书记兼市委组织部部长。1998年,升任福建省委组织部副部长。2001年,改任广西壮族自治区党委常委、组织部部长。2003年,升任全国妇女联合会副主席、书记处书记等。2008年10月17日,中国工会十五大在北京开幕。同年10月19日,大会选举产生中华全国总工会第十五届执行委员会和经费审查委员会。1
  • 狄考文卡尔文·威尔逊·马蒂尔(Calvin Wilson Mateer,1836年-1908年),汉名狄考文,美国人,美北长老会来华传教士。狄考文出生于宾夕法尼亚州坎伯兰县的一个苏格兰-爱尔兰裔(英语:Scotch-Irish Americans)家庭。1857年毕业于加农斯堡(英语:Canonsburg, Pennsylvania)的杰弗逊学院(Jefferson College)。后进入西方神学院(Western Theological Seminary)学习,期间曾在俄亥俄州特拉华的长老会服务两年。186