オチはないです
話題
いくつかのエラーチェックしてひとつでもエラーがあれば処理止めたいんだけど、フラグ作って毎回if文でエラーがあればフラグを立てて…ってする方法以外になんかいい感じの方法ないかしら?
— *͙覚醒*͙むったんたん (@precure_______) 2021年2月4日
感想
まれによく見るやつだ(つらい)
CatsのValidatedを使ってみる
- パワフルな型が無い言語
- 筋肉でやる(フラグを立てつつ見ていく)
- パワフルな型がある言語
- 筋肉の代わりを型にやってもらうことができる
CatsにValidated
がある:
走らせるとこういう感じになる:
10 を変換中... 1abcde0 を変換中... 42 を変換中... Invalid(NonEmptyList(1abcde0 を整数として認識できませんでした))
でもこれだと処理自体は行ってしまうので,以下のような要件は達成できなそう
- 一気通貫して動いてほしいけど,どこかでもエラーの場合は各過程はログを吐くだけでスキップしてほしい
CatsのValidatedは直前の処理が成功しているか失敗しているかを知ることができず,全ての処理が平等に順に実行される.
どうする
flatMap
していくときに,必ず通る事前処理と,Left
/ Invalid
になっているときはスキップするような本体処理があればいいのに・・・
ここで力尽きた