项目官网:[url=http://www.mono-project.com/CsharpRepl]CsharpRepl[/url]
链接更新:
[url=http://tirania.org/blog/archive/2008/Sep-10.html]Miguel de Icaza: C# Eval: An Embeddable Compiler[/url]
[url=http://www.unethicalblogger.com/posts/2008/09/resurgange_shell]R. Tyler Ballance: Resurgange of the shell.[/url]
[url=http://www.mfconsulting.com/danmorg/blog/archives/000170.html]Daniel Morgan: Mono's interacive C# and using System.Data[/url]
在[url=http://tirania.org/blog/]Miguel de Icaza[/url](Mono创始者)的blog上看到了关于这个交互式C# shell的消息,觉得相当有趣。甚至可以说这是“a dream come true”,我一直就希望C#也能有个好用的交互式shell。
例子:
[quote]
一直认为许多动态语言的实现给用户带来的一个便利点就是REPL(read-eval-print loop)的开发方式,而这种开发方式的核心就在于交互式shell。REPL当然并不是[b]动态类型语言[/b]特有的,许多[b]静态语言[/b]的实现也带有交互式shell,例如Haskell、SML、Ocaml、F#、Scala等。从这点看,静态类型与语法本身的“动态性”并不一定矛盾。得看这个“动态”是如何定义的。在最近正在写的介绍LINQ与DLR的文章中会具体讨论这个问题。
Miguel做这个shell还挺用心的,顺带[url=http://tirania.org/blog/archive/2008/Aug-26.html]把GNU ReadLine的功能用managed code做了个实现[/url]。
链接更新:
[url=http://tirania.org/blog/archive/2008/Sep-10.html]Miguel de Icaza: C# Eval: An Embeddable Compiler[/url]
[url=http://www.unethicalblogger.com/posts/2008/09/resurgange_shell]R. Tyler Ballance: Resurgange of the shell.[/url]
[url=http://www.mfconsulting.com/danmorg/blog/archives/000170.html]Daniel Morgan: Mono's interacive C# and using System.Data[/url]
在[url=http://tirania.org/blog/]Miguel de Icaza[/url](Mono创始者)的blog上看到了关于这个交互式C# shell的消息,觉得相当有趣。甚至可以说这是“a dream come true”,我一直就希望C#也能有个好用的交互式shell。
例子:
[quote]
csharp> 1;
1
csharp> "Hello, World".IndexOf (",");
5
csharp> Console.WriteLine ("Hello");
Hello
[/quote]
一直认为许多动态语言的实现给用户带来的一个便利点就是REPL(read-eval-print loop)的开发方式,而这种开发方式的核心就在于交互式shell。REPL当然并不是[b]动态类型语言[/b]特有的,许多[b]静态语言[/b]的实现也带有交互式shell,例如Haskell、SML、Ocaml、F#、Scala等。从这点看,静态类型与语法本身的“动态性”并不一定矛盾。得看这个“动态”是如何定义的。在最近正在写的介绍LINQ与DLR的文章中会具体讨论这个问题。
Miguel做这个shell还挺用心的,顺带[url=http://tirania.org/blog/archive/2008/Aug-26.html]把GNU ReadLine的功能用managed code做了个实现[/url]。