[Haskell-beginners] Usage of type

Pietro Grandinetti pietro.gra at hotmail.it
Tue Dec 8 16:23:35 UTC 2020


Hi,

Playing around with code (very few lines) that represents long-form articles. I'd like to understand:
1- if the usage of `type' is correct, or if I should prefer `newtype', or something different altogheter.
2- what's the more idiomatic way to do the boxing and unboxing of renamed types? See last 2 functions in the code.

import Data.Time (Day)
import Data.List (intercalate)
import Data.List.Split (splitOn)

type Title            = String
type Author       = String
type Sentence   = String
type Paragraph  = [Sentence]
type Abstract     = Paragraph
type Content     = [Paragraph]
type Date           = Day

data Essay     = Essay {
    title       :: Title
    , authors   :: [Author]
    , pubDate   :: Date
    , startDate :: Date
    , abstract  :: Abstract
    , content   :: Content
    } deriving (Show)

makeTitle :: String -> Title
makeTitle x = x::Title

makePar :: String -> Paragraph
makePar =  splitOn sep
    where sep = "."

makeContent :: String -> Content
makeContent x = map makePar $ splitOn sep x
    where sep = "\n\n"

unboxPar :: Paragraph -> String
unboxPar = intercalate ". "

unboxContent :: Content -> String
unboxContent x = intercalate "\n\n" $ map unboxPar x

Thanks,
Pete
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20201208/b0b49695/attachment.html>


More information about the Beginners mailing list