3
假設我有這樣的代碼(來自"Synopsis"簡體)插入列表到數據庫持久
{-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, OverloadedStrings #-}
{-# LANGUAGE GADTs, FlexibleContexts #-}
import Database.Persist
import Database.Persist.Sqlite
import Database.Persist.TH
import Control.Monad.IO.Class (liftIO)
import Control.Monad.Trans.Resource (runResourceT)
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persist|
Person
name String
|]
main :: IO()
main = runResourceT $ withSqliteConn ":memory:" $ runSqlConn $ do
runMigration migrateAll
johnID <- insert $ Person "John Doe"
janeID <- insert $ Person "Jane Doe"
liftIO $ print johnID
liftIO $ print janeID
return()
input = [Person "John Doe", Person "Jane Doe"]
我將如何插入列表input
,進而獲得ID列表?
或更多haskellish,'mapM insert input'。我知道RWH有一個討論爲什麼會有兩種'mapM'和'forM'。 – Tarrasch
嗯,作品。嘗試之前,它噴出了奇怪的錯誤信息。謝謝。 – Secoe