Haskell 2010 changes the syntax for guards by replacing the use of a single condition with a list of qualifiers. These qualifiers, which include both conditions and pattern guards of the form pat <- exp, serve to bind/match patterns against expressions. The syntax is comparable that of a list comprehension, where instead the types of pat and exp match. This makes it easy, for instance, to pattern
Have you ever wanted to do case expr of regexhere -> ... ? You can do almost that with view patterns! {-# LANGUAGE ViewPatterns #-} import Text.Regex.Posix -- Helper pat :: String -> String -> [[String]] pat p s = s =~ p -- Function with matching foo :: String -> String foo (pat "foo(bar|baz)" -> [[_,x]]) = x foo _ = "no!" main :: IO () main = do print $ foo "foobar" print $ foo "foobaz" print $ f
The Glorious Glasgow Haskell Compiler.
小ネタ。 ビットパターンをHaskellでパターンマッチできたらいいよね、ということでview patternを使ってみた。 {-# LANGUAGE ViewPatterns #-} import Data.Bits -- | ビット。 I は 1, O は 0 data B = I | O deriving Show -- | 8ビット。 左がMSB, 右がLSB data Byte = B B B B B B B B B deriving Show bool2b :: Bool -> B bool2b True = I; bool2b False = O bit' :: Bits a => Int -> a -> B bit' i b = bool2b $ testBit b i -- | view patternで使う関数 bit8 :: Bits a => a -> Byte b
このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日本のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年10月時点の調査。
The Glorious Glasgow Haskell Compiler.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く