【发布时间】:2010-09-07 17:12:48
【问题描述】:
我正在草拟一些东西的设计(函数的机器学习),它最好需要一种函数式编程语言,以及内省,特别是能够以某种易于处理的格式检查程序自己的代码的能力,最好还有能力让机器生成的代码在运行时编译,我想知道用什么语言编写它最好。Lisp当然具有强大的自省能力,但静态类型语言也有优势;我正在考虑的是:
F# - .Net 平台在这里有一个很好的故事,你可以在运行时读取字节码,也可以发出字节码并编译它;我认为从 F# 访问这些设施没有问题。
Haskell、Ocaml - 它们是否有类似的功能,无论是通过字节码还是解析树?
我还应该研究其他语言吗?
【问题讨论】:
-
为什么需要自省?
-
在阅读方面,这是必不可少的,因为预想系统的核心功能是分析人类编写的代码的能力。在编写方面,不是必需的,但很好,因为在机器生成的代码经常运行的情况下,编译它会使其运行得更快。
-
好问题,我最近一直在想这个问题。我的日常工作是普通的 lisp,我已经做了一些事情来使用自省自动生成 graphviz 调用图,我一直想知道 haskell 是否有足够强大的功能让我做类似的事情。
-
@rwallace:这需要如何自省?
-
Jon:如果一个程序可以分析自己的代码,大多数人会称之为自省;您是否使用其他术语?
标签: haskell f# functional-programming ocaml introspection