Nemerle 和 F# 在 .Net 上的功能比较
社区 Wiki 问题:
根据此问题:在 .Net 中使用 Scala 的好处是什么? 我想到了另一个问题。谁能列出 Nemerle 和 F# 在 .Net 平台上进行功能开发的比较优势(和劣势)?我只是顺便看了一眼内梅尔。听起来它与 F# 的运行方式大致相同,所以我想知道除了明显的语法差异以及 F# 得到 Microsoft 支持的巨大优势之外,还有哪些差异。
Community Wiki Question:
Pursuant to this question: What are the benefits of using Scala in .Net? another question comes to mind. Can anyone lay out the comparative advantages (and disadvantages) of Nemerle and F# for functional development on the .Net platform? I've just looked at Nemerle in passing. It sounds like it kind of plays in the same ballpark as F# so I was wondering what differences there are other than the obvious syntax differences and the big advantage F# has of being backed by Microsoft.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我接触过这两种语言,我对 Nemerle 的印象简要如下:(我假设大多数观众都熟悉 F#,而 Nemerle 不太受欢迎,所以为了公平起见,我会多介绍一些):
F#
Nemerle
此外,您可能会注意到 Nemerle 编译器的另一个功能 - 它可以从进一步的使用中推断出类型。为了推断类型,F# 使用基于 Hindley-Milner 算法的方法并尝试推断最通用的类型。相反,Nemerle 从不推断多态类型,并且总是寻找最具体的类型。
F#
Nemerle 在相同条件下会将 run 类型推断为 (int->int) * int ->;国际。
有关 Nemerle 类型推理机制的更多详细信息,请参阅 Michal Moskal 的硕士论文:带有延迟的类型推断
编辑:添加了稍大的样本
I’ve touched both these languages and my impressions on Nemerle are briefly the following:(I assume that most of the audience is familiar with F# and Nemerle is less popular so for the sake of fairness I'll cover it a bit more):
F#
Nemerle
Also you may notice another feature of Nemerle compiler – it can infer types from further usage. To deduce types F# uses approach based on Hindley-Milner algorithm and tries to infer most generic type. Nemerle, in opposite, never infers polymorphic types and always looks for most specific type.
F#
Nemerle in the same conditions will infer type of run as (int->int) * int -> int.
More details on Nemerle type inference mechanism can be found in MSc thesis of Michal Moskal: Type Inference With Deferral
EDIT: Added slightly larger sample
我对 Nemerle 知之甚少,但我认为它的一大特点是宏(一个卫生的类似计划的快乐宏,而不是丑陋的类似 C 的宏)。我从来没有真正理解为什么人们如此喜欢宏,但话又说回来,我从来没有真正理解为什么人们如此喜欢代数数据类型和模式匹配,直到我开始使用 F#。所以我怀疑,如果您喜欢宏并且使用 .NET,那么您就是 Nemerle 的狂热粉丝。
I know little about Nemerle, but I think one of its big features is macros (a la hygenic Scheme-like happy macros, as opposed to ugly C-like macros). I never quite grokked why people love macros so much, but then again, I never grokked why people like algebraic data types and pattern-matching so much, until I started using F#. So I suspect that if you love macros, and you use .NET, then you're a rabid Nemerle fan.