私はちょうどhaskellの簡単な演習を行っていますが、if-then-else文をMaybe
の型に変換するポイントフリーの方法があるかどうか疑問に思っていました。条件がfalseの場合はNothing
が返され、入力がJust
の場合条件が真である場合。要するに条件付きチェックを入力の多分型に変換するポイントフリーの方法はありますか?
、いくつかの与えられた:
maybeIf :: (a -> Bool) -> a -> Maybe a
maybeIf cond a = if cond a then Just a else Nothing
はa
に対して点フリーで実装がありますか?私はさらに具体的なバージョンa -> Maybe a
を見ていて、Control.Arrow
のどこかに答えがあるように感じます。しかし、Maybe
はデータ型であり、if-else文がデータフローを制御するので、綺麗なやり方があるかどうかはわかりません。
'Data.Bool'には' bool'があります。 – dfeuer
非常に興味深い!私は単純で簡潔な方法で学ぶことが最も重要なので、私はこの答えが一番好きだと思います。私は彼の答えが最も読みやすいので@Peterにこれを与えるつもりです。私はポイントフリーのwrtを求めていたと思います。 – stites