Merkkijonojen yhdistäminen

Haskell:
Merkkijonojen yhdistäminen

How to: | Näin teet:

Haskellissa on suoraan sanottuna nautinnollisen puhdasta koodata. Katsoppas näitä esimerkkejä:

-- Yksinkertainen yhdistäminen
main = putStrLn $ "Moikka, " ++ "maailma!"

-- Funktio merkkijonojen yhdistämiseen
yhdistä :: String -> String -> String
yhdistä a b = a ++ b

-- Käyttö
main = putStrLn $ yhdistä "Koodausta " "Haskellilla."

-- Käyttämällä `concat` funktiota listoille
main = putStrLn $ concat ["Haskell ", "on ", "täällä ", "jäädäkseen."]

-- Tulos kullekin:
-- "Moikka, maailma!"
-- "Koodausta Haskellilla."
-- "Haskell on täällä jäädäkseen."

Ei turhia kommervenkkejä. Käynnistä GHCi ja kokeile itse.

Deep Dive | Syvä Sukellus:

Haskellissa merkkijonojen yhdistäminen on ikivanhaa perinnettä. Ne ovat listoja, joissa on Char-tyypin alkiot – siksi ‘++’ toimii niin saumattomasti.

Muita tapoja? Funktio concatMap tekee näppärän tempun listoille. Monadeille [Char] eli String -tyypille löytyy >>= operaattori, joka tekee saman mutta hieman eri tavalla. Muista että Text ja ByteString ovat tehokkaampia isommille datamäärille.

Merkkijonojen yhdistäminen on pohjimmiltaan listojen yhdistämistä. Haskellissa tämä on optimoitu käytettäväksi järkevästi, mutta älä unohda suorituskykyseikkoja suurten datamäärien kanssa.

See Also | Katso Myös:

Koodaile rohkeasti ja kokeile eri tapoja. Haskell on siitä kiehtova, että se pakottaa ajattelemaan asioita hieman eri kulmasta. Hauskoja hetkiä merkkijonojen parissa!