; -*- scheme -*- ; Generate cozy sentences. See also kawaii.rkt and kawaii.6r. (import (chicken random)) (define random pseudo-random-integer) (define (pick-from-lists vec) (vector-ref vec (random (vector-length vec)))) (define (pick-from vec) (list (pick-from-lists vec))) (define nouns #(warmth wind horse beach skin hug river sea fruit campfire sky sun book girl peach strawberry cake tulip mushroom fairy cabin tree heart lullaby song)) (define (noun) (pick-from nouns)) (define adjectives #(warm soft calm sacred shining pink simple sincere sweet playful lovely)) (define (adjective) (pick-from adjectives)) (define (article) (pick-from #(the a some))) (define verbs #(embraced complimented caressed teased saw heard needed thanked held)) (define phrasal-verbs #((played with) (smiled at) (talked to) (cared for))) (define (verb) (pick-from-lists (vector (pick-from verbs) (pick-from-lists phrasal-verbs)))) (define (bnp) ; basic noun phrase (if (= 0 (random 2)) (append (article) (noun)) (append (article) (adjective) (noun)))) (define (np) (if (= 0 (random 5)) (append (bnp) '(of) (np)) (bnp))) (define (vp) (append (verb) (np))) (define (sentence) (append (np) (vp))) (display (sentence)) (newline) (display (sentence)) (newline) (display (sentence)) (newline) (display (sentence)) (newline) (display (sentence)) (newline) (display (sentence)) (newline) (display (sentence)) (newline) (display (sentence)) (newline) (display (sentence)) (newline) (display (sentence)) (newline)