私は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 を解析しています。