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 (関連情報)