问题标签 [nemerle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
674 浏览

macros - Defining operators in Boo

I'm looking to move some of my lighter weight metaprogramming from Nemerle to Boo and I'm trying to figure out how to define custom operators. For example, I can do the following in Nemerle:

Then these two are equivalent:

I can't find a way of doing this in Boo -- any ideas?

0 投票
10 回答
989 浏览

boo - 什么时候一种新语言是适合这项工作的工具?

很长一段时间以来,我一直在尝试不同的语言来找到我想要的功能集,但我一直无法找到它。我的语言非常适合我的各种项目,但我提出了这些语言的交集,这将使我能够用一种语言完成 99.9% 的项目。我想要以下内容:

  • 构建在 .NET 之上或具有 .NET 实现
  • 在编译时和运行时对 .NET 运行时的依赖很少(这很重要,因为主要用例之一是在 .NET 运行时完全自定义的嵌入式开发中)
  • 有一个 100% .NET 代码的编译器,没有非托管依赖项
  • 支持任意表达式嵌套(见下文)
  • 支持自定义运算符定义
  • 支持类型推断
  • 优化尾调用
  • 具有明确的不可变/可变定义(很好——我开始喜欢这个但没有它也可以生活)
  • 支持强大的元编程的真实宏(绝对必备)

我主要使用的两种语言是 Boo 和 Nemerle,但我也使用过 F#。

对 Nemerle 的主要抱怨:编译器有可怕的错误报告,实现是地狱般的错误(编译器和库),宏只能在函数内或作为属性应用,而且依赖关系相当严重(尽管还不够破坏者)。
对 Boo 的主要抱怨:没有任意表达式嵌套(dealbreaker),宏难以编写,没有自定义运算符定义(潜在的 dealbreaker)。
对 F# 的主要抱怨:难看的语法、难以理解的元编程、非自由许可证(史诗般的交易破坏者)。

所以我想得越多,我就越想开发自己的语言。

优点:

  • 获取我想要的确切语法
  • 获得更快的周转时间;很难量化,但看到 1.5 倍的开发人员生产力我不会感到惊讶,特别是由于测试基础设施可以为某些项目启用
  • 我可以轻松地向编译器添加自定义功能,以便与我的运行时完美配合
  • 我得到了完全按照我想要的方式设计和工作的东西——尽管这听起来像 NIH,但这会让我的生活更轻松

缺点:

  • 除非它能够流行起来,否则我将被维护的负担所困。我知道我至少可以让 Nemerle 人过来,因为我认为每个人都想要更专业的东西,但这需要一个村庄。
  • 由于第一个骗局,我对在专业环境中使用它持谨慎态度。也就是说,我已经在使用 Nemerle 并使用我自己的自定义修改编译器,因为他们根本没有很好地维护它。
  • 如果它没有得到普及,那么寻找开发人员将变得更加困难,以至于保罗格雷厄姆甚至可能不会宽恕。

所以基于所有这些,普遍的共识是什么——这是一个好主意还是一个坏主意?也许更有帮助的是,我是否错过了任何重大的利弊?

编辑:忘记添加嵌套示例——这是 Nemerle 的一个案例:

编辑#2:认为如果存在将转换为这种语言的代码类型的示例,这不会有什么坏处(仅 S. Lott 的回答可能足以吓跑我不要这样做)。该代码大量使用了自定义语法(操作码、:=、quoteblock 等)、表达式嵌套等。您可以在此处查看一个很好的示例:here

0 投票
2 回答
433 浏览

metaprogramming - Nemerle 宏的中缀格式

假设我需要一些非常特殊的乘法运算符。它可以在以下宏中实现:

我可以像这样使用它

及其工作。

但我真正想要的是我现在正在开发的 DSL 的一些类似“英语”的运算符:

如果我尝试像这样使用它

编译器因“预期;”而失败 错误

问题是什么?如何实现这个中缀格式的宏?

0 投票
5 回答
1115 浏览

.net - Script.Net vs Nemerle

我正在研究将脚本整合到我的应用程序中。然后我碰到了Script.NetNemerle。我知道它们有不同的语法,Nemerle 支持宏但不支持 Script.Net。但我想更多地了解它们在功能、用法和灵活性方面的差异。你会推荐哪一个,为什么?

谢谢。

抱歉,我没有注意到 Nemerle 本身就是一种语言。描述似乎是一种脚本语言。感谢和抱歉造成的混乱

0 投票
3 回答
324 浏览

regex - 正则表达式中的语法错误以匹配链接 url

我在一些 nemerle 代码中有以下方法:

问题是编译器出于某种原因试图解析正则表达式语句中的括号并导致程序无法编译。如果我删除@,(我被告知放在那里)我在“\s”上得到一个无效的转义字符错误

下面是编译器输出:

(第 23 行是上面带有正则表达式代码的行)

我该怎么办?

0 投票
2 回答
1556 浏览

silverlight - 通过反射获取 mscorlib 2.0.5.0(又名 Silverlight mscorlib)中的类型?

我正在尝试将 Silverlight 支持添加到我最喜欢的编程语言 Nemerle。

Nemerle,在编译过程中,通过反射主要分两步加载所有类型

1-) 使用 Assembly.LoadFrom 加载程序集 2-) 使用 Assembly.GetTypes() 获取类型

然后在编译结束时,它使用 Reflection.Emit 发出解析的类型。

此过程适用于所有程序集,包括 Silverlight 程序集,除了 silverlight 的 mscorlib。

在 c# 中,这失败了:

但这通过了:

Bu 在后者中,a.GetTypes() 抛出异常说 System.Object 的父级不存在。

有出路吗 ?

0 投票
3 回答
1710 浏览

asp.net - Using Nemerle in asp.net App_Code directory

I want to use Nemerle in an ASP.NET application. Specifically, putting .n files into App_Code.

I added this to my web.config system.codedom/compilers section:

When running I get this exception:

The assembly '' is already loaded in another appdomain. Setting in machine.config can help solve this issue.

Stack trace

What am I doing wrong?

0 投票
3 回答
583 浏览

c# - 和弦有什么用?

Nemerle 等语言支持和弦的概念。我想知道它们的实际用途是什么。

0 投票
2 回答
317 浏览

c# - 输入 Nemerle

我想知道如何从表单的控制台获取输入:

M 14 65 99 英寸。在 C# 中,我通过以下方式执行此操作:

但这在 Nemerle 不起作用。请建议我如何在 Nemerle 中做到这一点。

0 投票
3 回答
1123 浏览

mono - 如何在 Mono 上安装 Nemerle

我找不到解决方案 如何在 Mono 上安装 Nemerle

我有 Nemerle Studio ,但我想用它试试单声道。也许我以后会为 Linux 做一些东西,现在我想在 windows 上尝试一下。