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