Myu
2025年8月22日金曜日
Haskell入門 P354 各種操作の実装
registerAction :: WRAction a registerAction = do name <- param' "name" -- paramで値を取り出す。 password <- param' "password" when (null name || null password) $ startView (Just "入力されてない項目があります") -- 未入力項目があれば入力を促す。 n <- runSqlite $ insertUser (NewUser name password) when (n <= 0) $ startView (Just "登録に失敗しました") -- INSERT失敗時に登録失敗を返す。 startView (Just "登録しました。ログインしてください。")
whenはtrueならアクションを実行、startViewは実行したら次の行にはいかない。
runSqlite で (Connection -> IO m)を引数にとるため、insertUserの部分適用をうまく使っている。 (insertUser :: IConnection c => NewUser -> c -> IO Integerなので)
このへんがHaskellの簡潔さにつながっているのだと思う。
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿