aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkshay <[email protected]>2020-11-22 12:03:04 +0000
committerAkshay <[email protected]>2020-11-22 12:03:04 +0000
commite94b6b48fb0662aa1f779e729591592e53e63dbd (patch)
treeb05f3b99f1c3d7d1b77e21c6e75f82496c9008c6
parent75afe1122a87c4508d4a134cea697bf334e80850 (diff)
work out data generation
-rw-r--r--elm.json1
-rw-r--r--src/Data.elm85
2 files changed, 86 insertions, 0 deletions
diff --git a/elm.json b/elm.json
index 4c4956d..ba0c4ba 100644
--- a/elm.json
+++ b/elm.json
@@ -9,6 +9,7 @@
9 "elm/browser": "1.0.2", 9 "elm/browser": "1.0.2",
10 "elm/core": "1.0.5", 10 "elm/core": "1.0.5",
11 "elm/html": "1.0.0", 11 "elm/html": "1.0.0",
12 "elm/random": "1.0.0",
12 "elm/time": "1.0.0" 13 "elm/time": "1.0.0"
13 }, 14 },
14 "indirect": { 15 "indirect": {
diff --git a/src/Data.elm b/src/Data.elm
new file mode 100644
index 0000000..c3e71ae
--- /dev/null
+++ b/src/Data.elm
@@ -0,0 +1,85 @@
1module Data exposing (punctuations, randomWord, textData)
2
3import Random
4import Utils exposing (listIdx, triple)
5
6
7type alias Config =
8 { punctuation : Bool
9 , capitals : Bool
10 , length : Int
11 }
12
13
14textData : List String
15textData =
16 "the of to and a in is it you that he was for on are with as I his they be at one have this from or had by not word but what some we can out other were all there when up use your how said an each she which do their time if will way about many then them write would like so these her long make thing see him two has look more day could go come did number sound no most people my over know water than call first who may down side been now find any new work part take get place made live where after back little only round man year came show every good me give our under name very through just form sentence great think say help low line differ turn cause much mean before move right boy old too same tell does set three want air well also play small end put home read hand port large spell add even land here must big high such follow act why ask men change went light kind off need house picture try us again animal point mother world near build self earth father head stand own page should country found answer school grow study still learn plant cover food sun four between state keep eye never last let thought city tree cross farm hard start might story saw far sea draw left late run don't while press close night real life few north open seem together next white children begin got walk example ease paper group always music those both mark often letter until mile river car feet care second book carry took science eat room friend began idea fish mountain stop once base hear horse cut sure watch color face wood main enough plain girl usual young ready above ever red list though feel talk bird soon body dog family direct pose leave song measure door product black short numeral class wind question happen complete ship area half rock order fire south problem piece told knew pass since top whole king space heard best hour better true during hundred five remember step early hold west ground interest reach fast verb sing listen six table travel less morning ten simple several vowel toward war lay against pattern slow center love person money serve appear road map rain rule govern pull cold notice voice unit power town fine certain fly fall lead cry dark machine note wait plan figure star box noun field rest correct able pound done beauty drive stood contain front teach week final gave green oh quick develop ocean warm free minute strong special mind behind clear tail produce fact street inch multiply nothing course stay wheel full force blue object decide surface deep moon island foot system busy test record boat common gold possible plane stead dry wonder laugh thousand ago ran check game shape equate hot miss brought heat snow tire bring yes distant fill east paint language among grand ball yet wave drop heart am present heavy dance engine position arm wide sail material size vary settle speak weight general ice matter circle pair include divide syllable felt perhaps pick sudden count square reason length represent art subject region energy hunt probable bed brother egg ride cell believe fraction forest sit race window store summer train sleep prove lone leg exercise wall catch mount wish sky board joy winter sat written wild instrument kept glass grass cow job edge sign visit past soft fun bright gas weather month million bear finish happy hope flower clothe strange gone jump baby eight village meet root buy raise solve metal whether push seven paragraph third shall held hair describe cook floor either result burn hill safe cat century consider type law bit coast copy phrase silent tall sand soil roll temperature finger industry value fight lie beat excite natural view sense ear else quite broke case middle kill son lake moment scale loud spring observe child straight consonant nation dictionary milk speed method organ pay age section dress cloud surprise quiet stone tiny climb cool design poor lot experiment bottom key iron single stick flat twenty skin smile crease hole trade melody trip office receive row mouth exact symbol die least trouble shout except wrote seed tone join suggest clean break lady yard rise bad blow oil blood touch grew cent mix team wire cost lost brown wear garden equal sent choose fell fit flow fair bank collect save control decimal gentle woman captain practice separate difficult doctor please protect noon whose locate ring character insect caught period indicate radio spoke atom human history effect electric expect crop modern element hit student corner party supply bone rail imagine provide agree thus capital won't chair danger fruit rich thick soldier process operate guess necessary sharp wing create neighbor wash bat rather crowd corn compare poem string bell depend meat rub tube famous dollar stream fear sight thin triangle planet hurry chief colony clock mine tie enter major fresh search send yellow gun allow print dead spot desert suit current lift rose continue block chart hat sell success company subtract event particular deal swim term opposite wife shoe shoulder spread arrange camp invent cotton born determine quart nine truck noise level chance gather shop stretch throw shine property column molecule select wrong gray repeat require broad prepare salt nose plural anger claim continent oxygen sugar death pretty skill women season solution magnet silver thank branch match suffix especially fig afraid huge sister steel discuss forward similar guide experience score apple bought led pitch coat mass card band rope slip win dream evening condition feed tool total basic smell valley nor double seat arrive master track parent shore division sheet substance favor connect post spend chord fat glad original share station dad bread charge proper bar offer segment slave duck instant market degree populate chick dear enemy reply drink occur support speech nature range steam motion path liquid log meant quotient teeth shell neck"
17 |> String.split " "
18
19
20punctuations : List String
21punctuations =
22 ", ! . ? ... ; :" |> String.split " "
23
24
25randomBool : Random.Generator Bool
26randomBool =
27 Random.uniform True [ False ]
28
29
30randomWord : Config -> Random.Generator ( Int, Bool, Bool )
31randomWord config =
32 let
33 idx =
34 Random.int 0 999
35
36 punct =
37 if config.punctuation then
38 randomBool
39
40 else
41 Random.constant False
42
43 caps =
44 if config.capitals then
45 randomBool
46
47 else
48 Random.constant False
49 in
50 Random.map3 triple idx punct caps
51
52
53capitalize : String -> String
54capitalize s =
55 (String.toUpper <| String.left 1 s) ++ String.dropLeft 1 s
56
57
58configureWord : ( Int, Bool, Bool ) -> Random.Generator String
59configureWord ( idx, punct, caps ) =
60 let
61 w =
62 listIdx textData idx
63
64 p =
65 if punct then
66 listIdx punctuations (modBy (List.length punctuations) idx)
67
68 else
69 Just ""
70
71 pw =
72 Maybe.withDefault "" <| Maybe.map2 (++) w p
73 in
74 if caps then
75 Random.constant <| capitalize pw
76
77 else
78 Random.constant pw
79
80
81randomParagraph : Config -> Random.Generator (List String)
82randomParagraph config =
83 randomWord config
84 |> Random.andThen configureWord
85 |> Random.list config.length