From bbb6c9b99a647b2f294fcf36cd83c501f04263d8 Mon Sep 17 00:00:00 2001 From: Wesley Kerfoot Date: Tue, 18 Jun 2013 12:27:51 -0400 Subject: [PATCH] made some stylistic changes --- approximate.hs | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/approximate.hs b/approximate.hs index 2662665..f49906c 100644 --- a/approximate.hs +++ b/approximate.hs @@ -10,29 +10,31 @@ import Data.Char frequencyMap [] ngmap = ngmap frequencyMap ((_, 0.0):ngs) ngmap = frequencyMap ngs ngmap -frequencyMap ((ng, p):ngs) ngmap = case Dm.lookup (DB.head ng) ngmap of - Nothing -> frequencyMap ngs (Dm.insert (DB.head ng) [(ng, p)] ngmap) - Just xs -> frequencyMap ngs (Dm.insert (DB.head ng) ((ng, p) : xs) ngmap) +frequencyMap ((ng, p):ngs) ngmap = + case Dm.lookup (DB.head ng) ngmap of + Nothing -> frequencyMap ngs (Dm.insert (DB.head ng) [(ng, p)] ngmap) + Just xs -> frequencyMap ngs (Dm.insert (DB.head ng) ((ng, p) : xs) ngmap) -nextChoice k xs = case k of - 1 -> DB.pack [DB.head xs] - _ -> DB.take (k-1) xs +nextChoice 1 xs = DB.pack [DB.head xs] +nextChoice _ xs = DB.take (k-1) xs +generateText k n acc cur freqmap = + do + let (Just probabilities) = Dm.lookup cur freqmap + choice <- MR.fromList probabilities + let next = DB.last choice + case n of + 0 -> return acc + _ -> generateText k (n-1) (DB.append acc (nextChoice k choice)) next freqmap -generateText k n acc cur freqmap = do - let (Just probabilities) = Dm.lookup cur freqmap - choice <- MR.fromList probabilities - let next = DB.last choice - case n of - 0 -> return acc - _ -> generateText k (n-1) (DB.append acc (nextChoice k choice)) next freqmap +gibberish n = + do + js <- (DB.readFile "./quadgrams.json") + let (Just ngramPairs) = decode js :: Maybe (Dm.Map DB.ByteString Rational) + result <- generateText 4 n "" 116 (frequencyMap (Dm.toList ngramPairs) (Dm.singleton 0 [])) + return result -gibberish n = do - js <- (DB.readFile "./quadgrams.json") - let (Just ngramPairs) = decode js :: Maybe (Dm.Map DB.ByteString Rational) - result <- generateText 4 n "" 116 (frequencyMap (Dm.toList ngramPairs) (Dm.singleton 0 [])) - return result - -main = do - output <- gibberish 1550 - DB.writeFile "./output3.txt" output \ No newline at end of file +main = + do + output <- gibberish 1550 + DB.writeFile "./output3.txt" output