Prelude> :m +Text.Printf
Prelude Text.Printf> printf "%s, %d, %.4f\n" "hello" 123 pi
hello, 123, 3.1416
Prelude Text.Printf> a = printf "%s, %d, %.4f" "hello" 123 pi
Prelude Text.Printf> :t a
a :: PrintfType t => t
Prelude Text.Printf> putStrLn a
hello, 123, 3.1416
Prelude Text.Printf> a :: String; a = printf "%s, %d, %.4f" "hello" 123 pi
Prelude Text.Printf> a
"hello, 123, 3.1416"
安装 interpolate
$ cabal install interpolate
Installed interpolate-0.2.0
Prelude> :set -XQuasiQuotes
Prelude> import Data.String.Interpolate
Prelude Data.String.Interpolate>
interpolate 是一个处理字符串插值的模块。
该模块使用语言扩展 QuasiQuotes,#{...} 是插值部分。
Prelude Data.String.Interpolate> let name = "Marvin"
Prelude Data.String.Interpolate> putStrLn [i|name: #{name}|]
name: Marvin
Prelude Data.String.Interpolate> let age = 23
Prelude Data.String.Interpolate> putStrLn [i|age: #{age}|]
age: 23
Prelude Data.String.Interpolate> let profession = "\955-scientist"
Prelude Data.String.Interpolate> putStrLn [i|profession: #{unwords [name, "the", profession]}|]
profession: Marvin the λ-scientist
原文:https://www.cnblogs.com/zwvista/p/9348270.html