Skip to content

Commit 8410583

Browse files
committed
Create data structure for parsing Json
1 parent 88bbd4e commit 8410583

File tree

4 files changed

+74
-202
lines changed

4 files changed

+74
-202
lines changed

practise/1 task/.vscode/launch.json

-26
This file was deleted.

practise/1 task/battleship.hs

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
module MyModule where
2+
3+
import Data.List
4+
import Data.Char
5+
6+
-- Cordinates Of Shot:
7+
8+
-- {
9+
-- "coord": ["D", "7"],
10+
-- "result": "HIT",
11+
-- "prev": {
12+
-- "coord": ["A", "10"],
13+
-- "result": null,
14+
-- "prev": null
15+
-- }
16+
-- }
17+
18+
-- {"coord":["D","7"],"result":"HIT","prev":{"coord":["A","10"],"result":null,"prev":null}}
19+
20+
-- data MyBool a = MyFalse | MyTrue a
21+
-- deriving Show
22+
23+
data MoveMsg = DicMsg [(String, MoveMsg)]
24+
| CordList [MoveMsg]
25+
| CordValue String
26+
| Exist (Maybe MoveMsg)
27+
deriving Show
28+
29+
30+
-- Some examples of parsing data
31+
firstMove :: MoveMsg
32+
firstMove = DicMsg [
33+
("coord", CordList[CordValue "A", CordValue "10"]),
34+
("result", Exist Nothing),
35+
("prev", Exist Nothing)
36+
]
37+
38+
secondMove :: MoveMsg
39+
secondMove = DicMsg [
40+
("coord", CordList[CordValue "D", CordValue "7"]),
41+
("result", CordValue "HIT"),
42+
("prev", firstMove)
43+
]
44+

practise/1 task/testing.hs

-176
This file was deleted.

theory/basics.hs

+30
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,33 @@ fewMoves = MsgDict [
174174
, ("prev", firstMove)
175175
]
176176

177+
178+
-- data type: Extinguisher
179+
-- data value: Extinguishers
180+
data Extinguisher = Extinguishers {
181+
tipas :: Tipas
182+
, talpa :: Int
183+
} deriving Show
184+
185+
defaultE10r :: Extinguisher
186+
defaultE10r = Extinguishers {tipas = C, talpa = 5}
187+
188+
-- It automatically generates getters and setters, so we can simply use to get value:
189+
-- talpa defaultE10r
190+
191+
192+
-- data List = Nil | Cons Integer List
193+
-- deriving Show
194+
195+
-- constructor Cons takes two arguments:
196+
-- a - integer
197+
-- List a - because this constructor returns List a type value, it can be passed as parameter to constructor as if recursion
198+
-- And returns List a
199+
data List a = Nil | Cons a (List a)
200+
deriving Show
201+
202+
203+
-- emptyList = Nil
204+
-- oneElList = Cons 1 emptyList
205+
-- twoElList = Cons 2 oneElList
206+
-- threeElList = Cons 3 twoElList

0 commit comments

Comments
 (0)