gpt4 book ai didi

haskell - 在 ghci 中设置选项

转载 作者:行者123 更新时间:2023-12-05 00:10:00 25 4
gpt4 key购买 nike

我正在尝试像这里一样使用字符串插值 http://hackage.haskell.org/package/interpolate-0.2.0/docs/Data-String-Interpolate.html

具体来说,

>>> :set -XQuasiQuotes
>>> import Data.String.Interpolate

>>> let name = "Marvin"
>>> putStrLn [i|name: #{name}|]
name: Marvin

如果我在 ghci 中运行它,它工作正常。另外,如果我写一个像这里显示的文件,这也有效 https://downloads.haskell.org/~ghc/7.6.3/docs/html/users_guide/ch04s02.html

{-# OPTIONS_GHC -XQuasiQuotes #-}
import Data.String.Interpolate

main = do
let name = "Marvin"
putStrLn [i|name: #{name}|]

但是如果我只是使用选项并在文件中导入,并在 ghci 中运行命令,我会得到一个错误 parse error on input'#'

-- in file example.hs
{-# OPTIONS_GHC -XQuasiQuotes #-}
import Data.String.Interpolate

-- in GHCi, ghci example.hs, then run
> let name = "Marvin"
> putStrLn [i|name: #{name}|]
`parse error on input'#'`

what's happening here and why can't i run the command in ghci?
thanks

最佳答案

各个模块中启用的语言功能不会传播到 ghci session 。您必须重新启用它们,即执行 :set -XQuasiQuotes


顺便说一句,你应该启用语言功能使用

{-# LANGUAGE QuasiQuotes #-}

Haskell 源文件中的语法。

关于haskell - 在 ghci 中设置选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59061537/

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