Haskell:
文字列の補間
How to: (方法)
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
import Data.Text (Text)
import NeatInterpolation (text)
name = "世界"
greeting :: Text
greeting = [text|こんにちは、${name}さん!|]
main :: IO ()
main = putStrLn $ toString greeting
-- 出力: こんにちは、世界さん!
Deep Dive (深掘り)
Haskellでは文字列補間は言語の基本機能ではない。しかし、QuasiQuotes構文を使用するライブラリ、例えばNeatInterpolation
が使い道を拡げる。歴史的には、他の言語の影響を受けている。代替手段としては、printf
や++
を使うことがあるが、QuasiQuotesを使った方法はより直感的で読みやすい。Haskellの型の安全性に影響を与えずに、動的な文字列を扱えるのが魅力。
See Also (関連情報)
NeatInterpolation
ライブラリ: Hackage NeatInterpolation- Haskellの
QuasiQuotes
: Haskell Wiki QuasiQuotes - 文字列操作の基本: Haskell Wiki Strings