forked from fmidue/logic-tasks
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQuiz.hs
More file actions
31 lines (23 loc) · 977 Bytes
/
Quiz.hs
File metadata and controls
31 lines (23 loc) · 977 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{-# LANGUAGE RecordWildCards, NamedFieldPuns #-}
module Tasks.TreeToFormula.Quiz(
generateTreeToFormulaInst,
) where
import Trees.Generate (genSynTree)
import Test.QuickCheck (Gen,)
import Tasks.TreeToFormula.Config (TreeToFormulaConfig(..), TreeToFormulaInst(..))
import Tasks.SynTree.Config (SynTreeConfig(binOpFrequencies))
import Trees.Print (transferToPicture, display)
import Trees.Types (BinOp(..))
import qualified Data.Map as Map (keys)
generateTreeToFormulaInst :: TreeToFormulaConfig -> Gen TreeToFormulaInst
generateTreeToFormulaInst TreeToFormulaConfig {..} = do
tree <- genSynTree syntaxTreeConfig
return $ TreeToFormulaInst
{ tree
, latexImage = transferToPicture tree
, correct = display tree
, showArrowOperators = any (`elem` Map.keys (binOpFrequencies syntaxTreeConfig)) [Impl, BackImpl, Equi]
, addText = extraText
, showSolution = printSolution
, unicodeAllowed = offerUnicodeInput
}