Merkkijonosta lainausmerkkien poistaminen

Haskell:
Merkkijonosta lainausmerkkien poistaminen

Kuinka:

Haskellissa voimme luoda funktion, joka poistaa kaikki lainausmerkit annetusta merkkijonosta. Se on kuin sanoisimme lainausmerkeille, että häipykää, ja varmistaisimme, että ne ymmärtävät vihjeen.

import Data.List (intercalate)
import Data.Char (isPunctuation)

removeQuotes :: String -> String
removeQuotes = filter (\c -> c /= '"' && c /= '\'')

main :: IO ()
main = do
    let stringWithQuotes = "Haskell sanoi, \"Opiskellaanpa joitakin funktioita!\""
    putStrLn $ removeQuotes stringWithQuotes

Esimerkkitulostus:

Haskell sanoi, Opiskellaanpa joitakin funktioita!

Syväsukellus

Olipa kerran aika, ennen kuin merkkijonot ohjelmoinnissa olivat yhtä yleisiä kuin kissavideot internetissä, tekstin käsittely oli hankalaa. Mutta kun ohjelmointikielet kehittyivät, merkkijonoista tuli olennainen osa koodaamista. Silti lainausmerkit säilyivät kaksiteräisenä miekkana – ne ovat olennaisia merkkijonojen määrittelyssä, mutta kiusankappaleina todellisina datoina.

Vaihtoehtoja? Sen sijaan, että huitaisisit kaikki lainausmerkit pois kuin kärpäset, voit olla valikoiva. Saatat haluta poistaa vain uloimmat lainausmerkit (klassinen trimmaus) tai käsitellä merkkijonon sisällä olevia paenneita lainausmerkkejä.

Toteutuksen osalta yllä oleva removeQuotes-funktio käyttää lambdalla jokaisen merkin (c) tarkistamista, onko se ärsyttävä lainausmerkki, ja suodattaa ne sen mukaisesti. Tämä on suoraviivainen lähestymistapa, mutta suurempien tekstien tai monimutkaisempien sääntöjen kohdalla saatat haluta tutkia jäsentäjäkirjastoja, kuten Parsec, joka voi tarjota enemmän hienostuneisuutta ja voimaa tekstinkäsittelyyn.

Katso myös: