Haskell:
Extrahera delsträngar

How to:

I Haskell använder du ofta standardbibliotekets funktioner för att hantera strängar. Här är några exempel på hur man extraherar delsträngar:

import Data.Text (Text)
import qualified Data.Text as T

-- Exempel: Extrahera en delsträng med `take` och `drop`
extractSubstr :: Text -> Int -> Int -> Text
extractSubstr str start len = T.take len . T.drop start $ str

-- Användning:
main :: IO ()
main = do
    let text = T.pack "Hej, världen!"
    putStrLn . T.unpack $ extractSubstr text 5 7  -- Output: "världen"

Deep Dive

I Haskell använder man ofta Data.Text för strängmanipulation, eftersom det är mer effektivt än String. Historiskt sett användes String (en lista av tecken), men det var långsamt för större textmängder.

Det finns andra sätt att hantera sub-strings också. Modulen Data.Text tillhandahåller take, drop, och splitAt bland andra, som låter dig skära och sätta ihop strängar som du vill.

Implementationsmässigt använder Data.Text en array av Unicode-tecken (UTF-16 kodade) vilket gör det snabbare än String (som är en länkad lista av tecken).

See Also

Mer om Data.Text: https://hackage.haskell.org/package/text-1.2.4.1/docs/Data-Text.html

För grundläggande Haskell-strängmanipulation, se LYAH: http://learnyouahaskell.com/starting-out#strings