Haskell

文脈自由文法(CFG)と解析表現文法(PEG)をHaskellのモナドで説明する話

文脈自由文法(Context Free Grammar) と 解析表現文法(Parsing Expression Grammar) は記法が似ているものの、その性質は大きく異なっている。しかし、以下のようにHaskellのモナドを用いて、左再帰的でない文脈自由文法をそのままパーサーコンビネーターと…

JOI2008予選 問題1@Haskell

こんどはHaskellでやってみた。 solve :: Int -> [Int] -> Int -> Int solve price [] count = count solve price clist count | price >= (head clist) = solve (price - (head clist)) clist (count + 1) | otherwise = solve price (tail clist) count ma…

JOI2008予選 問題2@Haskell

countSubstringSub :: String -> String -> Int -> Int countSubstringSub _ [] count = count + 1 countSubstringSub [] _ count = count countSubstringSub str sub count | (head str) == (head sub) = countSubstringSub (tail str) (tail sub) count | …