在Javascript中,如果我想存储配置,我使用Json。在Clojure中,我使用EDN,Haskell中推荐什么? YAML?
答案 0 :(得分:6)
答案是:以上所有! Haskell拥有JSON,EDN,YAML,CSV以及更多的库。我相信所有这些库都支持泛型编程,这意味着它们可以自动为您派生架构。
使用JSON的示例是:
{-# LANGUAGE DeriveGeneric #-}
import GHC.Generics
import Data.Aeson
data Foo = Foo { fooA :: Int, fooB :: Char, fooC :: String }
deriving (Generic)
instance ToJSON Foo
instance FromJSON Foo
现在,您可以在encode
上使用decode
或Foo
,而无需再做任何工作。
更简单但不太推荐的选项是使用Read
和Show
:
data Foo = ... as before
deriving (Read, Show)
这样您就可以show (Foo ...)
和let foo = read someString
。