summaryrefslogtreecommitdiff
path: root/src/GF/Shell/TeachYourself.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/GF/Shell/TeachYourself.hs')
-rw-r--r--src/GF/Shell/TeachYourself.hs87
1 files changed, 0 insertions, 87 deletions
diff --git a/src/GF/Shell/TeachYourself.hs b/src/GF/Shell/TeachYourself.hs
deleted file mode 100644
index 7e5a8afe2..000000000
--- a/src/GF/Shell/TeachYourself.hs
+++ /dev/null
@@ -1,87 +0,0 @@
-----------------------------------------------------------------------
--- |
--- Module : TeachYourself
--- Maintainer : AR
--- Stability : (stable)
--- Portability : (portable)
---
--- > CVS $Date: 2005/04/21 16:46:13 $
--- > CVS $Author: bringert $
--- > CVS $Revision: 1.7 $
---
--- translation and morphology quiz. AR 10\/5\/2000 -- 12\/4\/2002
------------------------------------------------------------------------------
-
-module GF.Shell.TeachYourself where
-
-import GF.Compile.ShellState
-import GF.API
-import GF.UseGrammar.Linear
-import GF.Grammar.PrGrammar
-
-import GF.Infra.Option
-import GF.System.Arch (myStdGen)
-import GF.Data.Operations
-import GF.Infra.UseIO
-
-import System.Random --- (randoms) --- bad import for hbc
-import System
-
--- translation and morphology quiz. AR 10/5/2000 -- 12/4/2002
-
-teachTranslation :: Options -> GFGrammar -> GFGrammar -> IO ()
-teachTranslation opts ig og = do
- tts <- transTrainList opts ig og infinity
- let qas = [ (q, mkAnswer as) | (q,as) <- tts]
- teachDialogue qas "Welcome to GF Translation Quiz."
-
-transTrainList ::
- Options -> GFGrammar -> GFGrammar -> Integer -> IO [(String,[String])]
-transTrainList opts ig og number = do
- ts <- randomTreesIO (addOption beSilent opts) ig (fromInteger number)
- return $ map mkOne $ ts
- where
- cat = firstCatOpts opts ig
- mkOne t = (norml (linearize ig t),map (norml . linearize og) (homonyms ig cat t))
-
-
-teachMorpho :: Options -> GFGrammar -> IO ()
-teachMorpho opts ig = useIOE () $ do
- tts <- morphoTrainList opts ig infinity
- let qas = [ (q, mkAnswer as) | (q,as) <- tts]
- ioeIO $ teachDialogue qas "Welcome to GF Morphology Quiz."
-
-morphoTrainList :: Options -> GFGrammar -> Integer -> IOE [(String,[String])]
-morphoTrainList opts ig number = do
- ts <- ioeIO $ randomTreesIO (addOption beSilent opts) ig (fromInteger number)
- gen <- ioeIO $ myStdGen (fromInteger number)
- mkOnes gen ts
- where
- mkOnes gen (t:ts) = do
- psss <- ioeErr $ allLinTables True gr cnc t
- let pss = concat $ map snd $ concat psss
- let (i,gen') = randomR (0, length pss - 1) gen
- (ps,ss) <- ioeErr $ pss !? i
- (_,ss0) <- ioeErr $ pss !? 0
- let bas = unwords ss0 --- concat $ take 1 ss0
- more <- mkOnes gen' ts
- return $ (bas +++ ":" +++ unwords (map prt_ ps), return (unwords ss)) : more
- mkOnes gen [] = return []
-
- gr = grammar ig
- cnc = cncId ig
-
--- | compare answer to the list of right answers, increase score and give feedback
-mkAnswer :: [String] -> String -> (Integer, String)
-mkAnswer as s = if (elem (norml s) as)
- then (1,"Yes.")
- else (0,"No, not" +++ s ++ ", but" ++++ unlines as)
-
-
-norml :: String -> String
-norml = unwords . words
-
--- | the maximal number of precompiled quiz problems
-infinity :: Integer
-infinity = 123
-