gpt4 book ai didi

haskell - Haskell中GHC.Prim中的 "let x = x in x"和 "data Float#"是什么意思

转载 作者:行者123 更新时间:2023-12-03 15:17:04 25 4
gpt4 key购买 nike

我查看了 GHC.Prim 的模块,发现似乎 GHC.Prim 中的所有数据都定义为 data Float#没有像 =A|B 这样的东西, GHC.Prim 中的所有函数都定义为 gtFloat# = let x = x in x .

我的问题是这些定义是否有意义以及它们的含义。

我检查了 GHC.Prim 的标题,如下所示

{-
This is a generated file (generated by genprimopcode).
It is not code to actually be used. Its only purpose is to be
consumed by haddock.
-}

我想这可能与问题有关,谁能向我解释一下。

最佳答案

这是魔法 :)

这些是“原始运算符和操作”。它们被硬连线到编译器中,因此没有原语的数据构造函数,并且所有函数都是底部的,因为它们不一定在纯 haskell 中可表达。

(底部代表haskell程序中的一个“洞”,一个无限循环或undefined是底部的例子)

换一种方式

这些数据声明/函数将提供对原始编译器内部的访问。 GHC.Prim 的存在是为了导出这些原语,它实际上并没有实现它们或任何东西(例如,它的代码实际上没有用)。所有这些都在编译器中完成。

它适用于需要极度优化的代码。如果你认为你可能需要它,一些有用的reading关于 GHC 中的原语

关于haskell - Haskell中GHC.Prim中的 "let x = x in x"和 "data Float#"是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15893524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com