Differences From
Artifact [a53366f464]:
1 1 (include "lib/lisp-macro.scm")
2 2 (include "lib/fail.scm")
3 3 (include "lib/interlace.scm")
4 4 (include "lib/bot.scm")
5 -(include "lib/struct.scm")
5 +(include "lib/fn-struct.scm")
6 6 (include "lib/verb.scm")
7 7
8 8 (define (forms fn vb . args)
9 9 (list->vector (map (lambda (a) (fn vb a)) args)))
10 10
11 11 (define (flexprep vb . args)
12 12 (list->vector
13 13 (append (map (lambda (x) postpositive vb x) args)
14 14 (map (lambda (x) phrase vb x) args))))
15 15
16 +
17 +(define transitive-verbs (interlace vector
18 + (verb:weak "whack")
19 + (verb:weak "bludgeon")
20 + (verb:weak "brain")
21 + (verb:weak "debunk")
22 + (verb:weak "disembunk")
23 + (verb:strong "disprove" "disproved" "disproven")
24 + (verb:weak "disbar")
25 + (verb:weak "demolish")
26 + (verb:weak "defend")
27 + (verb:weak "defund")
28 + (verb:strong! "shoot" "shot")
29 + (verb:heavy "zap" "p")
30 + (verb:weak "spank")
31 + (verb:es "ravish")
32 + (forms postpositive
33 + (verb:es "piss") "on" "at" "upon" "away")
34 + (verb:e "disembon")
35 + (verb:e "debat")
36 + (verb:e "demot")
37 + (verb:e "puzzl")
38 + (verb:e "scrobbl")
39 + (verb:e "chok")
40 + (verb:e "defil")
41 + (verb:e "freebas")
42 + (verb:e "us")
43 + (verb:e "vap")
44 + (verb:e "smok")
45 + (verb:e "gargl")
46 + (verb:e "guzzl")
47 + (verb:e "admir")
48 + (forms postpositive
49 + (verb:weak "shout") "at" "up" "away")
50 + throw. (verb:strong "throw" "threw" "thrown")
51 + (forms postpositive
52 + throw "up" "away")
53 +))
16 54
17 55 (define intransitive-verbs (interlace vector
18 56 (forms phrase
19 - (verb:strong "get" "got" "gotten") "up" "off" "out")
57 + (verb:strong-heavy "get" "t" "got" "gotten") "up" "off" "out")
20 58 (verb:weak "leak")
21 59 (verb:weak "scream")
22 60 (verb:weak "fear")
23 61 hurt. (verb:strong! "hurt" "hurt")
24 62 (forms postpositive
25 63 hurt "bad" "real bad" "like hell"
26 64 "something awful" "something fierce"
................................................................................
91 129 (verb:es "crunch")
92 130 (verb:e "scrobbl")
93 131 (verb:e "chok")
94 132 (verb:e "blaz")
95 133 (verb:e "freebas")
96 134 (verb:e "us")
97 135 (verb:e "vap")
98 - (verb:e "smoke")
99 - (verb:e "gargle")
100 - (verb:e "guzzle")
136 + (verb:e "smok")
137 + (verb:e "gargl")
138 + (verb:e "guzzl")
101 139 (verb:e "mainlin")
102 140 (verb:y "tr")
103 141 (verb:heavy "stab" "b")
104 142 (verb:heavy "pop" "p")
105 143 (verb:heavy "zap" "p")
106 144 (verb:heavy "slug" "g")
107 145 (verb:strong "drink" "drank" "drunk")
................................................................................
195 233 (~ "god" [@ sg pl])
196 234 (~ "goddess" [@ sg pl/s])
197 235 (~ "asshole" [@ sg pl])
198 236 (~ "clown" [@ sg pl])
199 237 (~ "fear" [@ mass])
200 238 (~ "person" [@ sg (pl/i "people")]))))
201 239 ; TODO: second-order verbs
202 -#|
203 240 (define (verb-phrase tense noun)
204 241 (let* ([verb (pick-rec transitive-verbs)]
205 242 [noun-form (pick noun)]
206 243 [det (pick (cdr noun-form))]
207 244 [bare-noun (car noun-form)])
208 245 ((verb tense) (word-append det bare-noun))))
209 246
................................................................................
214 251 [bare-noun (car noun-form)]
215 252 [verb (pick-rec (car mode))]
216 253 [vbd-noun ((verb (cdr mode)) bare-noun)])
217 254 (vector (cons vbd-noun (cdr noun-form)))))
218 255
219 256 (print "in this house, we " (verb-phrase 'inf (mod-noun (pick nouns))))
220 257 (exit 0)
258 +#|
221 259 |#