Ticket #5922: engine.hs

File engine.hs, 1.8 KB (added by guest, 3 years ago)

the bastard who did this

Line 
1module Main where
2import System.Environment
3import Data.List
4
5propositiontree :: [Proposition]
6propositiontree = []
7
8data Proposition = Proposition [String]
9                 | Vote [(Int,Int)]
10                 | Positive [([String],Int)]
11                 | Negative [([String],Int)]
12                 deriving (Eq, Ord, show)
13address = main
14
15main :: IO (Maybe Int)
16main = do
17     putStrLn "Please enter data"
18     (arg0:args) <- getArgs
19     saveArgsToProposition (arg0:args) 
20     main
21
22saveArgsToProposition (arg0:args) = case arg0 of
23                                         "1" -> Vote (take address propositiontree):(1,0)
24                                         "2" -> (Vote (!! propositiontree address)):(2,0)
25                                         "3" -> (Vote (!! propositiontree address)):(3,0)
26                                         "positive" -> (Positive (!! propositiontree address)):args
27                                         "negative" -> (Negative (!! propositiontree address)):args
28                                         True -> propositionAdress (arg0:args)
29
30propositionAdress :: [String] -> String
31propositionAdress (arg0:args) = 
32                  if locateArgs (arg0:args) == "false"
33                                    then newProposition (arg0:args)
34                                    else locateArgs (arg0:args)
35                 
36locateArgs :: [String] -> String
37locateArgs (arg0:args) = if(arg0:args) elem propositiontree[] == False 
38                                       then "false"
39                                       else findIndex ((Proposition propositiontree)==arg0:args) propositiontree
40
41newProposition :: [String] -> String
42newProposition (arg0:args) = do
43                            show ((last propositiontree):(arg0:args))
44                           
45                         
46
47
48
49