在Javascript中,如果我想存储配置,我使用Json。在Clojure中,我使用EDN,在Haskell中推荐什么?Yaml?
发布于 2015-02-26 17:08:56
答案是:以上都是!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。
https://stackoverflow.com/questions/28748003
复制相似问题