GHCi 中的 PrimOps
PrimOps in GHCi
是否可以在 GHCi 中使用 PrimOps?以下不起作用:
$ ghci -XMagicHash
GHCi, version 8.10.1: https://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/stefan/.ghci
λ> let x = 42.0# :: Float#
<interactive>:1:18: error:
Not in scope: type constructor or class ‘Float#’
Perhaps you meant ‘Float’ (imported from Prelude)
手动导入 Prelude
无法解决此错误。
更新:导入后GHC.Exts
出现以下错误:
$ ghci -XMagicHash
GHCi, version 8.10.1: https://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/stefan/.ghci
λ> import GHC.Exts
λ> let x = 42.0# :: Float#
<interactive>:1:1: error:
GHCi can't bind a variable of unlifted type: x :: Float#
MagicHash
扩展使得在名称中使用 #
合法。如果你想指定像Float#
这样的类型,你仍然需要导入它们。执行 import GHC.Exts
并重试。
此外,您不能将它们与 let
绑定。您需要立即使用它们并重新包装它们。
是否可以在 GHCi 中使用 PrimOps?以下不起作用:
$ ghci -XMagicHash
GHCi, version 8.10.1: https://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/stefan/.ghci
λ> let x = 42.0# :: Float#
<interactive>:1:18: error:
Not in scope: type constructor or class ‘Float#’
Perhaps you meant ‘Float’ (imported from Prelude)
手动导入 Prelude
无法解决此错误。
更新:导入后GHC.Exts
出现以下错误:
$ ghci -XMagicHash
GHCi, version 8.10.1: https://www.haskell.org/ghc/ :? for help
Loaded GHCi configuration from /home/stefan/.ghci
λ> import GHC.Exts
λ> let x = 42.0# :: Float#
<interactive>:1:1: error:
GHCi can't bind a variable of unlifted type: x :: Float#
MagicHash
扩展使得在名称中使用 #
合法。如果你想指定像Float#
这样的类型,你仍然需要导入它们。执行 import GHC.Exts
并重试。
此外,您不能将它们与 let
绑定。您需要立即使用它们并重新包装它们。