
Hello Alexander. Il 29 maggio 2020 alle 11:55 Alexander Chen ha scritto:
import Data.Time
data DatabaseItem = DbString String | DbNumber Integer | DbDate UTCTime deriving (Eq, Ord, Show)
theDatabase :: [DatabaseItem] theDatabase = [ DbDate (UTCTime (fromGregorian 1911 5 1) (secondsToDiffTime 34250)) , DbNumber 9001 , DbString "Hello, world!" , DbDate (UTCTime (fromGregorian 1921 5 1) (secondsToDiffTime 34123)) ]
My question:
I want to get the UTCTime.
So, thisFunction :: [DatabaseItem] -> [UTCTime]
This is an excellent first step. A good candidate function is `map` λ> :t map map :: (a -> b) -> [a] -> [b] and if we fill in the arguments we are sure of and leave the rest out, ghc will — on reload/recompile — tell us what is missing. E.g: thisFunction :: [DatabaseItem] -> [UTCTime] thisFunction ds = map _ ds will lead to • Found hole: _ :: DatabaseItem -> UTCTime • In the first argument of ‘map’, namely ‘_’ Can you write a function with `DatabaseItem -> UTCTime` signature?