Interpolazione di una stringa

Haskell:
Interpolazione di una stringa

How to:

Haskell non ha l’interpolazione di stringa incorporata come altri linguaggi, ma possiamo ottenere un risultato simile usando la libreria text e il quasiquoter str.

{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}

import Data.Text (Text)
import qualified Data.Text.IO as T
import Data.String.Interpolate (i)

myName :: String
myName = "Giuseppe"

main :: IO ()
main = do
  let age = 30
  let greeting = [i|Ciao, sono #{myName} e ho #{age} anni.|]
  T.putStrLn greeting

Questo codice stamperà:

Ciao, sono Giuseppe e ho 30 anni.

Deep Dive

L’interpolazione di stringa non è un concetto nativo di Haskell, un linguaggio creato nel 1990 con un focus sulla programmazione puramente funzionale. In altri linguaggi, l’interpolazione è spesso integrata direttamente nella sintassi del linguaggio. In Haskell, la funzionalità può essere raggiunta attraverso librerie di terze parti come text e interpolate.

Alternativamente, è possibile utilizzare la funzione printf da Text.Printf che offre un’interpolazione ispirata a quella del linguaggio C, oppure costruire la propria funzione di interpolazione con funzioni di formattazione basiche disponibili in Haskell.

Entrando nei dettagli di implementazione, str è un quasiquoter che traduce la stringa interpolata in una espressione che combina stringhe e valori. Questo avviene a tempo di compilazione. Quindi, a differenza di linguaggi come Python o JavaScript, l’interpolazione in Haskell viene risolta prima dell’esecuzione.

See Also

Ricorda: Haskell è molto potente e offre diversi modi per lavorare con le stringhe, quindi esplora e trova il metodo che preferisci per le tue esigenze di interpolazione!