- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
社区维基问题:
根据这个问题:What are the benefits of using Scala in .Net?另一个问题浮现在脑海。谁能列出 Nemerle 的比较优势(和劣势)?和 F# 用于 .Net 平台上的功能开发?我只是顺便看了看Nemerle。听起来它与 F# 在同一个球场上发挥作用,所以我想知道除了明显的语法差异和 F# 得到微软支持的巨大优势之外,还有什么不同。
最佳答案
我接触过这两种语言,我对 Nemerle 的印象简要如下:(我假设大多数观众都熟悉 F#,而 Nemerle 不太受欢迎,所以为了公平起见,我会多介绍一下):
open System.Text
let l = [1; 2; 3]
let r1 = l |> List.fold(fun (sb : StringBuilder) v -> sb.Append(v).AppendLine()) (StringBuilder()) // type annotation is required on the function argument
let r2 = (StringBuilder(), l) ||> List.fold(fun sb v -> sb.Append(v).AppendLine()) //here compiler can infer type of State parameter
using System.Console;
using System.Collections.Generic;
using System.Text;
def l = [1,2,3];
def res = l.FoldLeft(StringBuilder(), (v, acc) => acc.Append(v).AppendLine());
WriteLine($"Result:\n$res");
def d = Dictionary(); // generic parameters are absent (even placeholders!!!)
d.Add(1, "!");
WriteLine(d.GetType()); // System.Collections.Generic.Dictionary`2[System.Int32,System.String]
let addInt = (+) 5
let addString = (+) "!!!"
let run f x = f (f x) // ('T -> 'T) -> 'T -> 'T
run addInt 5
run addString "S"
using System.Console;
using System.Collections.Generic;
using System.Text;
variant Expr
{
| Const { value : double }
| Var { name : string }
| Operation { id : string; left : Expr; right : Expr }
public Eval(operations : Dictionary[string, double*double -> double], context : Dictionary[string, double]) : double
{
match(this)
{
| Const (value) => value
| Var(name) => context[name]
| Operation(id, left, right) =>
def f = operations[id];
f(left.Eval(operations, context), right.Eval(operations, context))
}
}
}
module Program
{
public Main() : void
{
def expr =
Expr.Operation(
"*",
Expr.Const(10),
Expr.Operation(
"+",
Expr.Var("n"),
Expr.Const(5)
)
);
def operations = Dictionary.[string, double * double -> double]();
operations["+"] = (x, y) => x + y;
operations["*"] = _ * _;
def vars = Dictionary();
vars["n"] = 3.0;
def result = expr.Eval(operations, vars);
WriteLine($"Result is $result");
}
}
关于.net - Nemerle 和 F# 在 .Net 上的功能比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3588179/
def cmd = array [ 0x0F, 0x03 ] 这段代码定义了整数数组,所以我想要字节数组 有趣的是 def cmd = array [ 0x0Fb, 0x03b ] 这段代码定义了相同
我希望能够在我的代码中编写以下内容。 c² = a² + b² 首先,我尝试先为 ² 创建一个宏。我尝试了以下方法。 macro @² (x) syntax (x,"²") { } 但是我在
假设我需要一些非常特殊的乘法运算符。它可以在以下宏中实现: macro @ } 我可以像这样使用它 def val = 2 } 如果我尝试像这样使用它 def val = 2 multiply 3
我正在尝试将 Nemerle 编译器包含到我的源代码存储库中,这样就可以在构建服务器中不安装 Nemerle 的情况下构建它。目前我的源代码目录如下所示: - [MySolutionFolder] -
看起来这两种语言都被称为“C# 应该是什么”,具有 hygenic 宏、REPL、编译器即服务 (CaaS)、静态 + 鸭子类型(在 C# 之前)。这两种语言之间有什么主要区别,或者它们只是或多或少相
我尝试使用 Nemerle 的准引号获取 Nemerle 中一个简单代码片段的 AST。 这是我试过的代码: def ast() : void { System.Console.WriteLine
我尝试使用 Nemerle 的准引号获取 Nemerle 中一个简单代码片段的 AST。 这是我试过的代码: def ast() : void { System.Console.WriteLine
我找到了这篇文章:http://www.mono-project.com/Continuations 所以我有几个问题。 是否有基于此框架的 Nemerle 的 erlang 风格或(至少)scala
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我已经安装了 NemerleSetup-net。这在 c:\Program File(x86)\Nemerle 中创建了一个 Nemerle 文件夹 但是 VS2012 Common7\IDE\Ext
使用 C#/VB 以外的语言(特别是 Nemerle)构建 WPF 应用程序的过程是什么?是否有任何可用的命令行工具可以编译 XAML 并将其嵌入到程序集中? 是否有命令行工具可用于将 C#/VB 以
社区维基问题: 根据这个问题:What are the benefits of using Scala in .Net?另一个问题浮现在脑海。谁能列出 Nemerle 的比较优势(和劣势)?和 F#
我最近发现了 Nemerle 和 F#,但我找不到任何方法来调试我的应用程序。MonoDevelop 2.6 缺乏对 Nemerle 和 F# 的支持,2.4.2 和更早的版本因为安装了较新的 gno
我是一名优秀的程序员,十分优秀!