procgen  Check-in [588ff265a6]

Overview
Comment:ipdates
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 588ff265a66bc04861df8820756ef9eadd858bdf6ea4b2cdbc1ac439fa6fd063
User & Date: lexi on 2019-05-02 07:54:27
Other Links: manifest | tags
Context
2019-06-11
22:01
add dotorg check-in: a250db5fda user: lexi tags: trunk
2019-05-02
07:54
ipdates check-in: 588ff265a6 user: lexi tags: trunk
2019-04-17
23:45
tidy up headers check-in: 294d779091 user: lexi tags: trunk
Changes

Modified cclg.ml from [744b4b50d4] to [1db4eea4b2].

     1      1   type word = A of string | An of string
     2      2   type root = Edy of word | Xy of word | Ation of word | Le of word | A of word | Cy of word
     3      3   	| Rous of word | Ics of word | Ics2 of word | Sis of word | X of word | Ality of word | Ty of word
     4         -	| Ication of word | Tion of word | Arity of word | Sm of word
            4  +	| Ication of word | Tion of word | Arity of word | Sm of word | Ine of word
     5      5   type prefix = Inv of word | Vf of word * string
     6      6   let prefixes = [|
     7      7   	Vf(A "mult","i"); Inv (A "pre"); Vf(An "ex","o"); Vf(A "retr","o");
     8      8   	Inv (A "hyper"); Vf(A "hem","i"); Inv (A "eu"); Vf(A "par","a");
     9      9   	Vf(A "gastr","o"); Vf(A "bell","i"); Inv (An "an"); Vf(A "mes","o");
    10     10   	Vf(A "therm","o"); Vf(A "copr","o"); Vf(A "pleb","i"); Vf(An "ant","i");
    11     11   	Vf(A "pseud","o"); Vf(A "quas", "i"); Vf(A "crypt","o"); Vf(A "bronch","o");
................................................................................
    27     27   	Inv(A "tech"); Vf(A "plasm","o"); Vf(A "megal","o"); Inv(A "cyber"); 
    28     28   	Vf(A "met","a"); Inv(A "neo"); Vf(An "ocul","o"); Vf(A "strangul","o");
    29     29   	Vf(A "dendr","o"); Vf(A "matr","i"); Vf(A "patr","i"); Vf(A "lesb","o");
    30     30   	Vf(A "hom","o"); Vf(A "heter","o"); Vf(A "prot","o"); Vf(An "ect","o");
    31     31   	Vf(A "weeb","o"); Vf(A "fung","i"); Vf(A "per","i"); Vf(A "petr","i");
    32     32   	Vf(A "sad","o"); Vf(A "femin","i"); Vf(A "mascul","o"); Vf(A "claustr","o");
    33     33       Vf(A "neur","o"); Vf(A "norm","o"); Inv (A "eu"); Vf(A "sten","o");
    34         -    Vf(A "stegan","o");
           34  +    Vf(A "stegan","o"); Vf(A "rhod", "o");
    35     35   
    36     36   	Vf(An "agor","a"); Vf(A "thanat","o"); Vf(A "vagin","o"); Vf(A "bi","o"); 
    37     37   	Vf(A "blog","o"); Vf(A "prometh","eo"); Vf(An "anesthes", "io");
    38     38       Vf(A "din","o"); Vf(A "medic","o");
    39     39   |]
    40     40   
    41     41   let roots = [|
................................................................................
   107    107   	Ality (A "typic");
   108    108   	Xy (A "do");
   109    109   	Ality (A "leg");
   110    110   	Sm (A "legali");
   111    111   	Ation (A "leg");
   112    112   	A (A "pragmat");
   113    113   	A (A "stigmat");
          114  +	Ine (A "rhadamanth");
   114    115   |]
   115    116   
   116    117   let nsuffixes = [|
   117    118   	An "ite";
   118    119   	An "ate";
   119    120   	An "itis";
   120    121   	A "sis";
................................................................................
   223    224   	An x -> An (x^s) | A x -> A (x^s);;
   224    225   let pick (r : 'a array) : 'a = r.(Random.int(Array.length r))
   225    226   let chance i = (Random.int i) = 0
   226    227   let cform root = match root with
   227    228   	| Edy x -> x^^"edo" | Xy x -> x^^"cto" | Ation x -> x^^"o"
   228    229   	| Rous x -> x^^"ro" | Le x -> x^^"ulo" | A x -> x^^"o"
   229    230   	| Cy x -> x^^"tico" | Ics x | Ics2 x -> x^^(if chance 2 then "i" else "o")
   230         -	| Sis x -> x^^"to"
          231  +	| Sis x -> x^^"to" | Ine x -> x^^"o"
   231    232   	| X x -> x^^"co" | Ality x -> x^^"o" | Ty x -> x^^"to"
   232    233   	| Ication x -> x^^"o" | Tion x -> x^^"to" | Arity x -> x^^"a"
   233    234   	| Sm x -> x^^(if chance 2 then "smo" else "sto")
   234    235   let bareform root = match root with
   235    236   	| Edy x -> (if chance 2 then x else x^^"ed") | Xy x -> x^^"ct" | Ation x -> x
   236    237   	| Rous x -> x^^"r" | Le x -> x^^"ul" | A x -> x
   237    238   	| Cy x -> x^^"tic" | Ics x -> x^^"ic" | Ics2 x -> x | Sis x -> x^^"t"
   238    239   	| X x -> x^^"c" | Ality x -> x | Ty x -> x^^"t"
   239    240   	| Ication x -> x | Tion x -> x^^"t" | Arity x -> x
   240         -	| Sm x -> x^^"st"
          241  +	| Sm x -> x^^"st" | Ine x -> x
   241    242   let adjform root = match root with
   242    243   	| Edy x -> x^^"ic" | Xy x -> x^^"ctic" | Ation x -> x^^"ic"
   243    244   	| Rous x -> x^^"rous" | Le x -> x^^"ulous" | A x -> x^^"e"
   244    245   	| Cy x -> x^^"tical" | Ics x -> x^^"ical" | Ics2 x -> x^^"ic" | Sis x -> x^^"tic"
   245    246   	| X x -> x^^"cal" | Ality x -> x^^"al" | Ty x -> x^^"tical"
   246    247   	| Ication x -> x^^(if chance 3 then "itious" else "icate")
   247    248   	| Tion x -> x^^(match Random.int 4 with
   248    249   		| 0 -> "tive" | 1 -> "ted" | 2 -> "cious" | 3 -> "tory" | _ -> assert false)
   249    250   	| Arity x -> x^^"ary" | Sm x -> x^^(if chance 2 then "stic" else "smic")
          251  +    | Ine x -> x^^"ine"
   250    252   let nform root = if chance 7 then (adjform root) ^^ "ness" else match root with
   251    253   	| Edy x -> x^^"edy" | Xy x -> x^^"xy" | Ation x -> x^^(if chance 3 then "itor" else "ation")
   252    254   	| Rous x -> x^^"er" | Le x -> x^^"le" | A x -> x^^"a"
   253    255   	| Cy x -> x^^"cy" | Ics x -> x^^(if chance 3 then "ician" else "ics") | Sis x -> x^^"sis"
   254    256   	| Ics2 x -> x^^(if chance 3 then "ician" else "ics")
   255    257   	| X x -> x^^"x" | Ality x -> x^^"ality" | Ty x -> x^^"ty"
   256    258   	| Ication x -> x^^"ication" | Tion x -> x^^"tion" | Arity x -> x^^"arity"
   257         -	| Sm x -> x^^(if chance 2 then "st" else "sm")
          259  +	| Sm x -> x^^(if chance 2 then "st" else "sm") | Ine x -> x
   258    260   let abs (w:word) = match w with A x | An x -> x
   259    261   let append pref w = match pref with
   260    262   		| Inv x -> x ^^ (abs w)
   261    263   		| Vf(body,v) ->	 match w with
   262    264   			| An x -> body^^x
   263    265   			| A x -> (body^^v)^^x
   264    266   let rec word () : word = match Random.int 7 with

Modified drug.scm from [4c1ce8b744] to [a53366f464].

   134    134   ; state: a function that is called on a person, a tense
   135    135   ; (one of 'pst 'prs 'fut 'perf 'imperf), an aspect
   136    136   ; ('stat 'inch), and returns a string of text describing
   137    137   ; the person in that state
   138    138   ;  e.g.	(outta-mind '3sg.f 'prs 'stat) → "is outta her mind"
   139    139   ;		(suicidal '3sg.m 'fut 'stat) → "is gonna want to die"
   140    140   
   141         -(define (adjective pers tense aspect)
          141  +; (define (adjective pers tense aspect))
   142    142   
   143    143   
   144    144   (define (pick-rec top-list)  ; note: do not expose to
   145    145     (let ([e (pick top-list)]) ; empty vectors
   146    146   	(if (vector? e) (pick-rec e) e)))
   147    147   
   148    148   (define verb:be (let ([t (struct 'inf 'pst)]