Lisp的特点是,即语言实现所使用的代码表示(列表)也可供想要为自己的目的表示代码的程序使用,并且在语言中习惯性地使用。
另一类主要的函数式编程语言ML基于类型理论,这意味着语言实现需要更复杂的代码表示形式,并且对于您被允许执行的操作也不那么随意,因此通常不会将内部表示暴露给程序。例如,用于高阶逻辑的证明检查器经常以ML系列语言实现,但通常会实现自己的类型理论系统,从而有效地忽略了ML编译器已经具有其自己的系统这一事实。
是否有任何例外情况? 有没有基于类型理论的编程语言可以公开其代码表示形式供程序使用?