Haskell相当于Json或Edn

Ste*_*eve 1 haskell clojure

在Javascript中,如果我想存储配置,我使用Json.在Clojure中,我使用EDN,Haskell中推荐什么?YAML?

och*_*les 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
Run Code Online (Sandbox Code Playgroud)

现在你可以在没有任何工作的情况下使用encodedecode使用你Foo了.

一个更简单但不太推荐的选择是使用ReadShow:

data Foo = ... as before
  deriving (Read, Show)
Run Code Online (Sandbox Code Playgroud)

这将允许你做show (Foo ...)let foo = read someString.