Haskell:
Tekst zoeken en vervangen
Hoe:
Laten we tekst zoeken en vervangen met Haskell. We gebruiken Data.Text
voor Unicode tekstaanpak en efficiëntie. Zorg ervoor dat je Data.Text
als volgt importeert:
import qualified Data.Text as T
Nu, laten we alle instanties van “hello” naar “hi” vervangen in een tekst:
replaceText :: T.Text -> T.Text -> T.Text -> T.Text
replaceText oud nieuw = T.replace oud nieuw
main :: IO ()
main = doen
laat origineleTekst = T.pack "hello world, hello Haskell!"
laat nieuweTekst = replaceText (T.pack "hello") (T.pack "hi") origineleTekst
print nieuweTekst -- "hi world, hi Haskell!"
De replace
functie doet het zware werk. We hebben het ingepakt in replaceText
voor de duidelijkheid.
Diepgaande Duik
Haskell’s tekstvervangingsfuncties zoals T.replace
zijn gebouwd op de arrayverwerkingsmogelijkheden van Haskell. Terugkijkend, Haskell werd voor het eerst bedacht in de jaren ‘80, met een focus op functioneel programmeren. Dit paradigma maakt operaties zoals tekstvervanging elegant en minder foutgevoelig vanwege onveranderlijkheid en sterke typesystemen.
Wat betreft alternatieven, je zou handmatig kunnen itereren over tekst en substrings vervangen, maar dat is meer foutgevoelig en inefficiënt.
De Data.Text
bibliotheek gebruikt een andere interne voorstelling dan het String
type (dat gewoon een lijst van karakters is), waardoor het beter geschikt is voor grootschalige tekstbewerkingen. De T.replace
functie zelf maakt gebruik van efficiënte algoritmen voor het zoeken van strings, die zelfs voor grote teksten een goede prestatie bieden.
Zie Ook
Voor meer over Data.Text
, bekijk:
Overweeg ook breder te lezen over Haskell’s stringmanipulatie: