首页 / 知识
关于.net:F#中的宏支持
2023-04-16 21:26:00

macro support in F#在阅读了《实践通用Lisp》之后,我终于了解了宏的重大意义,并且我一直在寻找一种支持该功能的.NET平台语言。 .NET有一些Lisp的方言,但据我所知,它们要么是beta版本,要么是废弃版本。 最近,Clojure引起了我的兴趣,但它是针对Java平台的,虽然可能可以使用ikvm,但感觉并没有集成。 特别是当您想做WPF之类的事情时。 最近,我听到关于F#的耳语,我尝试查看一下文档,如果我能找到有关宏支持的任何信息,但还没有找到。 有人知道吗? 谢谢 :) Nemerle,位于http://nemerle.org/,是一种.NET语言(也支持mono),在视觉上保持与C#的距离时,它支持许多功能编程范例。它具有广泛的宏支持。 好吧,F#基于OCaml,而OCaml具有相当广泛的宏系统。鉴于F#和OCaml在语法和语义上的相似性,您可能可以将Ocaml宏系统移植到F#。 除了窃取Ocaml的宏系统外,我不知道F#的固定宏系统。 不。 F#没有宏。 你看过嘘吗?尽管Boo没有宏,但它具有开放的编译器管道,这是用于语法元编程的宏的很好替代。 [编辑]如评论中所述,Boo现在确实具有宏。 我想我应该指出,现在有一个相当活跃的Clojure .NET / Mono端口。如问题中所述,Clojure支持LISP样式宏。 正如其他人所说,F#目前不支持宏(2010年底)。 但令人恐惧的是,这些ocaml示例中的语法看起来晦涩难懂 在那里,您遇到了与Lisp相同的基本句法折衷。如果您希望像Lisp一样的宏功能强大,您倾向于要么以类似于Lisp的语言结尾,要么您的宏语法看起来与常规语法完全不同...两种方法都没错,只是选择不同
F#不支持宏,也不太可能支持宏。 如何使用F#报价? http://tomasp.net/blog/fsquotations.aspx .net有两个积极开发的Lisps IronScheme-基于DLR的方案实现 Xronos-基于DLR的Clojure端口 那可能与您想要的相反,但是您知道RDNZL吗?这是一个功能强大的接口(FFI),可让您从Lisp代码中调用.NET库。 它们很可能不比任何Common Lisp或Scheme实现成熟得多,但是.NET有Lisp方言:L#和DotLisp。 我目前正在研究F#中元编程的可能性。如果我们将宏定义为扩展为代码的文本模板,则有两种显而易见的方法: T4模板。有F#的实现:https://github.com/kerams/Templatus 我已经看到从字符串调用F#到单独的程序集中,然后再加载程序集的某个地方。 |
最新内容
相关内容
linux常用命令c语言?
linux常用命令c语言?,系统,工作,信息,管理,基础,命令,地址,目录,简介,时间,linux常用的20个命令?系统管理相关命令:df、top、free、quota、at、linux命令行设置语言?
linux命令行设置语言?,系统,管理,环境,国家,工具,电脑,软件,文化,底部,语言,linux命令行下怎样改变语言1、将内容改为:LANG=zh_CN.UTF-8LANGUAGlinux使用命令改语言?
linux使用命令改语言?,系统,工作,管理,电脑,设备,字符集,中文,命令,语言,虚拟机,请问linux虚拟机装好以后怎么把英文改成中文?1、vmware设置中c语言写linux命令?
c语言写linux命令?,系统,工具,代码,智能,工作,环境,情况,位置,命令,文件,如何在C语言编程中调用linux系统终端下的命令1、C语言有一个system函linux汇编语言命令?
linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇编语言指令的基本格式是什么1、有以下几种基本格式:标号,又称为指令linux汇编语言命令?
linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇编语言指令的基本格式是什么1、有以下几种基本格式:标号,又称为指令linux命令支持通配符?
linux命令支持通配符?,工具,系统,命令,灵活,较大,名称,名字,环境,数字,文件,Linux的基本命令格式如何?Linux下经常使用的通配符有哪些通配符linux命令是什么语言?
linux命令是什么语言?,系统,环境,代码,传播,管理,语言,操作系统,源码,自由,部分,dos和linux的命令行里面用的是什么语言?1、DOS/Windows/Linuxlinux支持管道的命令?
linux支持管道的命令?,通信,标准,系统,信息,地方,数据,管道,环境,设备,工具,Linux下Grep命令的详细使用方法?查找包含teacher文本的所有行并打linux改语言命令行?
linux改语言命令行?,系统,环境,工具,密码,概念,地方,软件,通信,管理,国际,linux命令行下怎样改变语言将内容改为:LANG=zh_CN.UTF-8LANGUAGE=zh_linux命令行c语言?
linux命令行c语言?,代码,系统,工具,环境,工作,保险,发行,命令,文件,终端,linux终端下如何进行C语言编译1、在Linux下面,如果要编译一个C语言源c语言在linux命令?
c语言在linux命令?,系统,工作,管理,命令,保险,基础,环境,信息,文件,语言,linux系统的命令是什么linux常用命令有pwd命令、cd命令、ls命令、cat