compiler-construction - 编译状态下的 Haskell 可变性?

标签 compiler-construction haskell

我对 Haskell 了解不多,但从我读到的关于计算的可变性(例如:函数返回函数、复杂的 monad 和函数等)的内容来看,你似乎可以做很多元编程,即使在运行时。

  • 如果像函数和 monad 这样的一切都如此复杂,Haskell 如何编译成机器代码并保留所有这些?

最佳答案

我不确定您所说的“可变性”到底是什么意思,但是将这种抽象语言编译成高效的机器代码确实是一项复杂的任务。作为起点,您可以阅读 The Implementation of Functional Programming Languages ,由 Simon Peyton-Jones 所著,Haskell 背后的主要人物之一。

对于更新的内容,有 some commentary on the internals of GHC ,旗舰版 Haskell 编译器。

在更实际的说明中,如果您只是想知道“函数作为值”的想法,那就是老掉牙了——Lisp 方言编译高阶函数的时间比我还长。一直活着,甚至 C 也将指针传递给周围的函数。

关于compiler-construction - 编译状态下的 Haskell 可变性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2907063/

相关文章:

c++ - 使用 erlang 构建 C++ 编译器

java - 让编译器通过重载方法来完成工作是行不通的

c++ - 是否可以使用 clang 自动包含缺少的 c++ 头文件?

OCaml 格式库的 Haskell 等效项

haskell : unload module in WinGHCi

haskell - 如何计算字符串中字符串的出现次数(Haskell)

haskell - 为 Atom (atom-haskell) 配置 Haskell(堆栈)时出现问题

c# - 在 C# 中应用 DeMorgan 定理手动优化条件语句中的 bool 表达式是否有用(例如 if 条件)

haskell - haskell 中的变量值

c# - 在 XNA 中从文件动态编译和运行着色器