私は Haskell と Snap を初めて使用し、snap を使用して小さな Web フォーラムで自分のプロジェクトに取り組んでいます。私が抱えている問題は、次のコードの競合と解決方法を理解することです。
handleCategoryAdd :: H ()
handleCategoryAdd = method POST (withLoggedInUser go)
where
go user = do
bs <- getParam "categoryName"
cN <- B.unpack $ Just bs
cD <- getParam "categoryDesc"
cT <- getCurrentTime
return (Db.saveCategory (Db.Category 1 cN cT "1" ))
redirect "/"
次のようなタイプの不一致エラーが表示されます。
src\Site.hs:118:22:
Couldn't match expected type `ByteString'
with actual type `Maybe ByteString'
In the first argument of `unpack', namely `bs'
In a stmt of a 'do' block: cN <- unpack bs
In the expression:
do { bs <- getParam "categoryName";
cN <- unpack bs;
cD <- getParam "categoryDesc";
cT <- getCurrentTime;
.... }
混乱を解消するためのアドバイスをいただければ幸いです。多分をアンラップしてバイト文字列を取得する方法を探していましたが、うまくいきませんでした。
どうもありがとう!