Haskell:
Interpolando uma string
Como Fazer:
Haskell não tem interpolação de strings nativa como outras linguagens, mas podemos chegar lá com a biblioteca text
e sua função printf
ou a biblioteca interpolate
. Aqui está como você pode usá-las:
-- Usando a biblioteca text
import Text.Printf (printf)
main :: IO ()
main = do
let nome = "Mundo"
let boasVindas = printf "Olá, %s!" nome
putStrLn boasVindas
-- Saída: Olá, Mundo!
-- Usando a biblioteca interpolate
{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}
import Data.String.Interpolate (i)
main :: IO ()
main = do
let nome = "Mundo"
let boasVindas = [i|Olá, #{nome}!|]
putStrLn boasVindas
-- Saída: Olá, Mundo!
Aprofundando:
Historicamente, Haskell não incluiu a interpolação de string porque se baseia em uma abordagem minimalista e genérica para a manipulação de strings. Enquanto linguagens como Ruby ou JavaScript têm interpolação de string embutida, Haskell utiliza bibliotecas que proveem essa funcionalidade. Além de printf
e interpolate
, você pode usar bibliotecas alternativas como formatting
para uma abordagem mais funcional e poderosa. A implementação envolve geralmente extensões da linguagem, como OverloadedStrings
e quasiquoters para integrar sintaxe de interpolação na linguagem puramente funcional.