首页 文章
  • 10 votes
     answers
     views

    同源型理论

    Lisp具有homoiconic的属性,也就是说,语言实现(列表)使用的代码的表示也可用于希望代表其自身目的的代码的程序,并由其惯用 . 函数式编程语言ML的另一个主要系列是基于类型理论,这意味着语言实现需要更复杂的代码表示,并且对于允许执行的操作也不那么随意,因此通常内部表示是不适用于程序 . 例如,用于高阶逻辑的证明检查器通常以ML族语言实现,但通常实现它们自己的类型理论系统,实际上忽略了ML...
  • 9 votes
     answers
     views

    同质性水平[关闭]

    这是我previous question的后续行动 . 我不相信Lisp代码与Von Neumann架构上的机器代码一样是Homoiconic . 对我来说似乎很明显,在这两种情况下代码都表示为数据,但似乎很明显,你可以在机器代码中比在Lisp中更自由地利用这个属性 . 在使用机器代码时,自我修改代码非常容易,它总是偶然发生,通常是偶然的,并且(根据我的经验)是搞笑的结果 . 在编写一个简单的“打...
  • 27 votes
     answers
     views

    在什么意义上,像Elixir和Julia homoiconic这样的语言?

    Lisp中的同质性很容易看出: (+ 1 2) 是 + 的函数调用,带 1 , 2 作为参数,以及包含 + , 1 和 2 的列表 . 它同时是代码和数据 . 但是,像朱莉娅这样的语言: 1 + 2 我知道我们可以将其解析为Julia中的 Expr : :(1 + 2) 然后我们可以获得AST并操纵它: julia> Meta.show_sexpr(:(1+2)) (:call, :+, 1...
  • 25 votes
     answers
     views

    同构和“不受限制”的自我修改代码lisp是否真的可以自我修改?

    我将继续承认我对Lisp的了解非常少 . 但是我对这门语言非常感兴趣,并计划在不久的将来开始认真学习它 . 我对这些问题的理解无疑是有缺陷的,所以如果我说出任何有些错误的东西,请评论并纠正我而不是贬低 . Truly Homoiconic and Self-modifiable languages 我正在寻找支持Homoiconicity(代码与数据具有相同表示)和 unrestricted 自修...
  • 27 votes
     answers
     views

    编译语言可以同音吗?

    根据定义,homoiconic这个词的意思是: 代码和数据的相同表示 在LISP中,这意味着您可以使用带引号的列表并对其进行评估,因此 (car list) 将是函数和 (cdr list) 参数 . 这可以在编译时或在运行时发生,但是它需要解释器 . 没有编译时解释器的编译语言是否也可能是homoiconic?或者说同性恋的概念仅限于口译员?
  • 266 votes
     answers
     views

    是什么让Lisp宏如此特别?

    阅读编程语言的Paul Graham's essays,人们会认为Lisp macros是唯一的出路 . 作为一个忙于开发人员,在其他平台上工作,我没有使用Lisp宏的特权 . 作为想要了解嗡嗡声的人,请解释是什么让这个功能如此强大 . 还请将此与我从Python,Java,C#或C开发世界中理解的内容联系起来 .

热门问题