gpt4 book ai didi

Haskell QuasiQuotes Text.RawString.QQ 插值

转载 作者:行者123 更新时间:2023-12-05 01:17:26 29 4
gpt4 key购买 nike

我怎样才能像这样插值:

{-# LANGUAGE QuasiQuotes #-}
import Text.RawString.QQ

myText :: Text -> Text
myText myVariable = [r|line one
line two
line tree
${ myVariable }
line five|]

myText' :: Text
myText' = myText "line four"

${ myVariable } 打印为文字,而不是插值,在这种情况下我可以做类似的插值吗?

最佳答案

准引用器 r 不实现插值。它仅适用于原始字符串。你需要另一个准引用者。

完整代码:

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}

import Data.Text (Text)
import Text.RawString.QQ (r)
import NeatInterpolation (text)

rQuote :: Text -> Text
rQuote myVariable = [r|line one
line two
line tree
${ myVariable }
line five|]

neatQuote :: Text -> Text
neatQuote myVariable = [text|line one
line two
line tree
$myVariable
line five|]

rText, neatText :: Text
rText = rQuote "line four"
neatText = neatQuote "line four"

ghci中:

*Main> import Data.Text.IO as TIO
*Main TIO> TIO.putStrLn rText
line one
line two
line tree
${ myVariable }
line five
*Main TIO> TIO.putStrLn neatText
line one
line two
line tree
line four
line five

关于Haskell QuasiQuotes Text.RawString.QQ 插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50688200/

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