Nemerle

✍ dations ◷ 2025-02-28 06:38:08 #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平台上的语言。下面是最简单的例子:

相关

  • 台风蔷薇超强台风蔷薇台风蔷薇(英语:Typhoon Jangmi,国际编号:0815,联合台风警报中心:19W;菲律宾大气地球物理和天文管理局:Ofel),是2008年太平洋台风季最强热带气旋。“蔷薇”是由韩国所提供
  • 柬埔寨参议院民选议员 (58) 指定议员 (4) 柬埔寨参议院(高棉语:ព្រឹទ្ធសភានៃព្រះរាជាណាចក្រកម្ពុជា, Protsaphea)是柬埔寨国会的上院。上一次参议院选
  • 常宝华常宝华(1930年12月-2018年9月7日),男,满族,天津人,中国相声表演艺术家,第六代相声演员,曾用艺名“四蘑菇”。曾是中国人民解放军海军政治部文艺工作团(简称“海政文工团”)的演员、编导
  • 段友兰段友兰,江西省吉安府永新县人,清朝政治人物、进士出身。光绪十五年(1889年),参加光绪己丑科殿试,登进士二甲69名。同年五月,改翰林院庶吉士。光绪十六年四月,散馆,授翰林院编修。
  • 丹尼尔·巴歇尔·沃纳丹尼尔·巴歇尔·沃纳(Daniel Bashiel Warner,1815年4月19日-1880年12月1日 )是利比里亚政治家,曾于1864年至1868年担任利比里亚总统。 利比里亚国歌《为利比里亚
  • 尼利槽沟坐标:22°34′N 76°48′E / 22.57°N 76.8°E / 22.57; 76.8 (尼利槽沟(Nili Fossae)) 尼利槽沟(Nili Fossae)是火星表面一个被侵蚀,且部分区域被沉积物和来自附近撞击坑富含黏土
  • MapboxMapbox是为Foursquare、Pinterest、Evernote、《金融时报》、天气频道、优步科技等公司的网站提供订制在线地图的大型供应商。自2010年起,该公司快速地拓展
  • 吴利成吴利成(1969年11月8日-),高雄市大树区政治人物,出身教育界,原在外县市担任教师,在乡亲建议下回到故乡参选议员,曾为高雄县第14、15及16届县议员,以及高雄市县合并后第5选区第1和3届高雄市议员。
  • 铃木善幸内阁铃木善幸内阁(日语:鈴木善幸内閣/すずきぜんこうないかく  */?)是日本众议院议员、自由民主党总裁铃木善幸就任第70任内阁总理大臣(首相)后,自1980年7月17日至1981年11月30日组成的日本内阁。第二次大平内阁(模板)改造内阁(1980年7月17日—1982年11月27日)第一次中曾根内阁(模板)第二次大平内阁铃木善幸内阁1980年7月17日 - 1981年11月30日铃木善幸改造内阁
  • 黑石顶角蟾黑石顶角蟾(学名:),一种于中华人民共和国广东省封开县黑石顶自然保护区发现的两栖动物,隶属于角蟾科布角蟾属。黑石顶角蟾体型较小,雄蟾体长35.6毫米左右,雌蟾体长37.5~41.2毫米。身体背面皮肤较光滑,呈棕色,眶间具三角框形斑纹,背部有一四角星形的深色斑纹;四肢具有黑色横纹;腹面为灰黑色,喉胸部有黑色斑夹杂少许橘色斑,一条纵向深棕色条纹从下颌延伸到胸部,后腹部中央分布着黑、白色花斑、中部夹杂着橘红色花斑。四肢腹面深棕色,上布有白色花纹。