fbpx
维基百科

Nemerle

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

Nemerle
编程范型多范型: 函数式, 指令式, 元编程, 面向对象
設計者Kamil Skalski, Michał Moskal, Prof. Leszek Pacholski, Paweł Olszta 于弗羅茨瓦夫大學
實作者JetBrains
发行时间2003年,​20年前​(2003
当前版本
  • 1.2.547.0 (2017年9月1日)[1]
型態系統类型推论, 名称, 静态, 强类型
系统平台CLI
文件扩展名.n
網站nemerle.org
主要實作產品
Nemerle
啟發語言
C#, Lisp, ML

範例 编辑

Hello, World! 编辑

一個傳統的"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) { <[ for($i = $begin; $i >= 0; $i--)$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平台上的語言。下面是最簡單的例子:

using System; using System.Runtime.InteropServices; class PlatformInvokeTest { [DllImport("msvcrt.dll")] public extern static puts(c : string): int; [DllImport("msvcrt.dll")] internal extern static _flushall() : int; public static Main() : void { _ = puts("Test"); _ = _flushall(); } } 

外部連結 编辑

  • Nemerle at 99 Bottles of Beer(页面存档备份,存于互联网档案馆
  • Interesting entries about Nemerle from akiramei's diary (in Japanese)(页面存档备份,存于互联网档案馆
  1. ^ http://nemerle.org/BuildHistory?major=1&minor=2.
  2. ^ Nemerle 1.2.507.0

nemerle, 是微軟公司提出的, net平台上的新語言, 由wrocław大學的kamil, skalski, michał, moskal, prof, leszek, pacholski, paweł, olszt等人發明, 编程范型多范型, 函数式, 指令式, 元编程, 面向对象設計者kamil, skalski, michał, moskal, prof, leszek, pacholski, paweł, olszta, 于弗羅茨瓦夫大學實作者jetbrains发行时间2003年, 20年前, 200. Nemerle 是微軟公司提出的 NET平台上的新語言 由Wroclaw大學的Kamil Skalski Michal Moskal Prof Leszek Pacholski Pawel Olszt等人發明 Nemerle编程范型多范型 函数式 指令式 元编程 面向对象設計者Kamil Skalski Michal Moskal Prof Leszek Pacholski Pawel Olszta 于弗羅茨瓦夫大學實作者JetBrains发行时间2003年 20年前 2003 当前版本1 2 547 0 2017年9月1日 1 型態系統类型推论 名称 静态 强类型系统平台CLI文件扩展名 n網站nemerle wbr org主要實作產品Nemerle啟發語言C Lisp ML 目录 1 範例 1 1 Hello World 1 2 巨集的例子 1 2 1 資料庫存取 1 2 2 新語言建構 1 3 Nemerle結合ASP NET 1 4 PInvoke 2 外部連結範例 编辑Hello World 编辑 一個傳統的 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 lt for i begin i gt 0 i body gt 定義一個巨集ford EXPR EXPR EXPR syntax可被寫成 ford i n print i Nemerle結合ASP NET 编辑 Nemerle可以被直接嵌入ASP NET lt Page Language Nemerle gt lt script runat server gt 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 lt script gt lt html gt lt body gt lt form runat server gt Please enter your name lt asp TextBox ID Name runat server gt lt asp Button OnClick EnterBtn Click Text Enter runat server gt lt p gt lt asp Label ID Message runat server gt lt p gt lt form gt lt body gt lt html gt 或者儲成單一檔案格式 一行完成 lt Page Language Nemerle Src test n Inherits Test gt PInvoke 编辑 Nemerle有更多原生平台函式庫 native platform libraries 風格非常類似C s和其它 NET平台上的語言 下面是最簡單的例子 using System using System Runtime InteropServices class PlatformInvokeTest DllImport msvcrt dll public extern static puts c string int DllImport msvcrt dll internal extern static flushall int public static Main void puts Test flushall 外部連結 编辑Language Homepage 页面存档备份 存于互联网档案馆 Nemerle at 99 Bottles of Beer 页面存档备份 存于互联网档案馆 Interesting entries about Nemerle from akiramei s diary in Japanese 页面存档备份 存于互联网档案馆 http nemerle org BuildHistory major 1 amp minor 2 Nemerle 1 2 507 0 取自 https zh wikipedia org w index php title Nemerle amp oldid 65654561, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。