标签: nemerle

如何在没有class explorer的情况下将属性添加到属性映射?

我在回答这个问题之后得到了一个新问题.将参数从页面传递到ActiveX

如何在没有class explorer的情况下将属性添加到属性映射?

需要为对象和类资源管理器添加属性不起作用,因为Nemerle尚不支持它.

码:

<object id="DBTableRepX"
 classid="CLSID:CA8B72B3-3B15-40D7-9364-478E25AF5B41"
 codebase="DBTableRepX.cab"
    style="
    Z-INDEX: 102; LEFT: 20px; WIDTH: 1200px; 
    POSITION: absolute; TOP: 80px; HEIGHT: 600px">
    <param name="ax_Command" value='<%=GetText()%>'/>
</object>
Run Code Online (Sandbox Code Playgroud)

asp.net activex object nemerle

66
推荐指数
1
解决办法
2335
查看次数

quasiquotations中"quasi"的含义是什么?

像Haskell(或Nemerle)这样的语言有quasiquotations.我想知道"准"是什么意思,如果没有"准"部分也存在"引用".

haskell programming-languages metaprogramming quoting nemerle

41
推荐指数
3
解决办法
3351
查看次数

F#vs C#vs Nemerle

在我的TODO中获得了新项目,无法选择F#或Nemerle.

我目前正在学习F#并在Nemerle上有一些项目.

我喜欢F#方式,我喜欢默认缩进(我也希望默认缩进为nemerle2),我喜欢F#的许多功能和魔力,但是没有宏.

F#的目标是VS2010,也许(可能)更大的开发团队,它看起来像Haskell(可以用它创建轻松的Linux程序,它很有趣).

Nemerle的目标是宏,我想我更喜欢Nemerle的一些语法.

而且大多数人都喜欢C#......

  • 所以语言必须是透视的
  • 语法必须合乎逻辑,易于理解,整洁有力(代码少)
  • 它必须易于与.NET一起使用
  • 因此,我选择了这3个,已经关闭了自己.
  • 我可以使用它们,但选择一个.这对我来说并不容易.

就像我喜欢(Nemerle)

match(STT)
    | 1 with st= "Summ"
    | 2 with st= "AVG" =>
        $"$st : $(summbycol(counter,STT))"
Run Code Online (Sandbox Code Playgroud)

更多(F#)

let (|Let|) v e = (v, e)

match stt with 
| Let "Summ" (st, 1) 
| Let "AVG" (st, 2) -> srintf "%s ..." st
Run Code Online (Sandbox Code Playgroud)

F# :

["A"; "B"] |> List.iter (fun s  -> printfn "%d"  s.Length)
Run Code Online (Sandbox Code Playgroud)

Nemerle:

["A", "B"].Iter(x => printf("%d", x.Length))
Run Code Online (Sandbox Code Playgroud)

F#(希望不要误会):

let type X =
    let mytable a = …
Run Code Online (Sandbox Code Playgroud)

.net c# f# nemerle

34
推荐指数
2
解决办法
5818
查看次数

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

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

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

我一直在使用的两种主要语言是Boo和Nemerle,但我也玩过F#.

针对Nemerle的主要投诉:编译器有可怕的错误报告,实现是错误的,因为地狱(编译器和库),宏只能在函数内部或作为属性应用,并且它是相当重的依赖性(虽然不够,它是一个交易破坏者).
针对Boo的主要投诉:没有任意表达式嵌套(dealbreaker),宏很难写,没有自定义运算符定义(潜在的交易破坏者).
针对F#的主要投诉:难看的语法,难以理解的元编程,非自由许可(epic dealbreaker).

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

优点:

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

缺点:

  • 除非能够普及,否则我将不得不承担维护的责任.我知道我至少可以让Nemerle的人过来,因为我觉得每个人都想要更专业的东西,但这需要一个村庄.
  • 由于第一个骗局,我担心在专业环境中使用它.也就是说,我已经在使用Nemerle并使用我自己的自定义修改编译器,因为它们根本不能很好地维护它.
  • 如果它没有获得普及,找到开发人员会更加困难,在某种程度上保罗格雷厄姆可能甚至不会宽恕.

因此,基于所有这些,一般的共识是什么 - 这是一个好主意还是一个坏主意?或许更有帮助,我是否错过了任何重大利弊?

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

def foo = 
    if(bar == 5)
        match(baz) { | "foo" => 1 | _ => 0 }
    else bar;
Run Code Online (Sandbox Code Playgroud)

编辑#2:想象一下如果存在将转换为该语言的代码类型的例子并不会受到影响(单独的S.Lott的回答可能足以让我远离这样做).代码大量使用自定义语法(操作码,:=,quoteblock等),表达式嵌套等.你可以在这里查看一个很好的例子:这里.

boo nemerle

14
推荐指数
4
解决办法
956
查看次数

Nemerle和F#的比较功能On .Net

社区维基问题:

根据这个问题:在.Net中使用Scala有什么好处?另一个问题浮现在脑海中.任何人都可以在.Net平台上列出Nemerle和F#的功能开发的比较优势(和劣势)吗?我刚刚看过Nemerle.听起来它和F#在同一个场地玩得很好,所以我想知道除了显而易见的语法差异和F#支持微软的巨大优势之外还有什么区别.

.net f# functional-programming nemerle

13
推荐指数
2
解决办法
2584
查看次数

在asp.net App_Code目录中使用Nemerle

我想在ASP.NET应用程序中使用Nemerle.具体来说,将.n文件放入App_Code.

我将此添加到我的web.config system.codedom/compilers部分:

<compiler language="n;Nemerle" extension=".n" type="Nemerle.Compiler.NemerleCodeProvider, Nemerle.Compiler"/>
Run Code Online (Sandbox Code Playgroud)

运行时我得到这个例外:

程序集''已经加载到另一个appdomain中.在machine.config中设置可以帮助解决此问题.

堆栈跟踪

[HttpException (0x80004005): The assembly '' is already loaded in another appdomain. Setting <deployment retail="true" /> in machine.config can help solve this issue.]
   System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories, Boolean isDirectoryAllowed) +8809675
   System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories) +128
   System.Web.Compilation.BuildManager.CompileCodeDirectories() +265
   System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +320

[HttpException (0x80004005): The assembly '' is already loaded in another appdomain. Setting <deployment retail="true" /> in machine.config can help solve this issue.]
   System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() …
Run Code Online (Sandbox Code Playgroud)

asp.net nemerle

9
推荐指数
1
解决办法
1700
查看次数

Boo vs Nemerle有什么区别?

看起来这两种语言都被称为"C#应该是什么",使用hygenic宏,REPL,Compiler作为Serivce(CaaS),静态+鸭子打字(C#之前的方式).这两种语言之间是否有任何重大差异,或者它们只是两种不同的实现,或多或少相同的东西?我在某地读过Nemerle的宏观服务比Boo更强大; 这是真的?

他们如何在当前活动,成熟度和IDE集成方面进行比较?

此外,C#5.0传闻的CaaS功能是否可能会使它们过时,如果它实现,或者是否有能够使它们保持相关的功能?

macros boo nemerle compiler-as-a-service

8
推荐指数
2
解决办法
1386
查看次数

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

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

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

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

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

此过程适用于所有程序集,包括除Silverlight的mscorlib之外的Silverlight程序集.

在c#中,这失败了:

 var a = System.Reflection.Assembly.LoadFrom(@"c:\mscorlib.dll");
Run Code Online (Sandbox Code Playgroud)

但这传递了:

var a = System.Reflection.Assembly.ReflectionOnlyLoadFrom(@"c:\mscorlib.dll"); 
Run Code Online (Sandbox Code Playgroud)

Bu在后者中,a.GetTypes()抛出一个异常,说System.Object的父节点不存在.

有出路吗 ?

silverlight reflection.emit nemerle mscorlib assembly.reflectiononly

7
推荐指数
1
解决办法
1545
查看次数

如何将1添加到一个字节

我试过了

 module Program
 {
  Main() : void
  { mutable x : byte = 0B;
    mutable y : byte = 0B;  
    x++;
    //y = x + 1;
    //y = x + 1B;
    //def one:byte=1;//   x = x + one;
  }
 }
Run Code Online (Sandbox Code Playgroud)

无论我尝试哪一个,我都会收到以下错误消息.

错误1期望字节,在赋值中得到int:System.Int32不是System.Byte的子类型[simple require]

我发现作品的唯一方法就是

    y = ( x + 1 ):>byte
Run Code Online (Sandbox Code Playgroud)

哪个有点faff,只是添加一个.

为什么是这样?还有更好的(阅读更短的方式)?

.net nemerle

5
推荐指数
2
解决办法
6077
查看次数

.NET 3.5安装程序中是否包含.NET 2.0?

我有一个用Nemerle编写的.NET 3.5程序.作为项目依赖项,我有一个.NET 2.0库.我可以确定当最终用户安装.NET 3.5时我的程序会工作,还是我还需要强迫他安装.NET 2.0?

谢谢.

.net installer nemerle

5
推荐指数
1
解决办法
2195
查看次数