diff options
| author | krasimir <krasimir@chalmers.se> | 2010-09-22 15:49:16 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2010-09-22 15:49:16 +0000 |
| commit | 617ce3cce67acca54a1ef3127da91bcd3e6a12ab (patch) | |
| tree | df716486c8cb4b09c248fb236ced79494f6860b4 /src/compiler/GF/Quiz.hs | |
| parent | 1c9305e7a39f4d17d4300067e987e3ebc30e83f3 (diff) | |
the first revision of exhaustive and random generation with dependent types. Still not quite stable.
Diffstat (limited to 'src/compiler/GF/Quiz.hs')
| -rw-r--r-- | src/compiler/GF/Quiz.hs | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/compiler/GF/Quiz.hs b/src/compiler/GF/Quiz.hs index 0c48ea67d..1a221c21d 100644 --- a/src/compiler/GF/Quiz.hs +++ b/src/compiler/GF/Quiz.hs @@ -42,7 +42,12 @@ translationList :: PGF -> Language -> Language -> Type -> Int -> IO [(String,[String])] translationList mex mprobs pgf ig og typ number = do gen <- newStdGen - let ts = take number $ generateRandomFrom mex mprobs gen pgf typ + let sel = case mprobs of + Just probs -> WeightSel gen probs + Nothing -> RandSel gen + let ts = take number $ case mex of + Just ex -> generateRandomFrom sel pgf ex + Nothing -> generateRandom sel pgf typ return $ map mkOne $ ts where mkOne t = (norml (linearize pgf ig t), map (norml . linearize pgf og) (homonyms t)) @@ -53,7 +58,12 @@ morphologyList :: PGF -> Language -> Type -> Int -> IO [(String,[String])] morphologyList mex mprobs pgf ig typ number = do gen <- newStdGen - let ts = take (max 1 number) $ generateRandomFrom mex mprobs gen pgf typ + let sel = case mprobs of + Just probs -> WeightSel gen probs + Nothing -> RandSel gen + let ts = take (max 1 number) $ case mex of + Just ex -> generateRandomFrom sel pgf ex + Nothing -> generateRandom sel pgf typ let ss = map (tabularLinearizes pgf ig) ts let size = length (head (head ss)) let forms = take number $ randomRs (0,size-1) gen |
