3
我是Haskell的新手,想知道是否有创建数据结构的简单方法,我可以通过连续的函数调用添加记录,并且不会丢失函数调用之间的结构状态(持久性? ),而不需要数据库。所以,我有:Haskell持久列表
data Book = Book { title :: String
, author :: String
, ISBN :: String
}
deriving (Eq, Show)
type BookShelf = [Book]
我明白,Haskell的方式这样做是复制的数据结构,每当一个试图做这样的事返回的更新。所以这会像这样:
addToBookShelf :: Book -> BookShelf -> BookShelf
addToBookShelf b bs = b : bs
所以我可以从一些其他函数递归调用来填充BookShelf。我不相信这会对我有用,因为我试图通过JSON PUT请求添加记录,并且我不想为外部HTTP客户端递归调用的函数返回更新列表。我相信这肯定有一个简单的答案!
附加信息:我正在使用Web.Scotty来解析JSON POST/GET。
谢谢。我想我明白了。但是,如果我使用Scotty模块来为POST/GET请求提供服务(请参阅上文),那么我的服务器就在Haskell中 - 所以它仍然意味着我需要将它存储到一些如何使用Haskell方法? – 2013-03-14 19:15:39
@AnthonyW,呃你是对的。我讨厌回调。您需要使用['IORef'](http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-IORef.html)来存储状态。 – luqui 2013-03-14 19:18:42