Annotation of 43BSDReno/contrib/emacs-18.55/lisp/flame.el, revision 1.1.1.1

1.1       root        1: ;;; "Flame" program.  This has a chequered past.
                      2: ;;;
                      3: ;;; The original was on a Motorola 286 running Vanilla V.1,
                      4: ;;; about 2 years ago.  It was couched in terms of a yacc (I think)
                      5: ;;; script.  I pulled the data out of it and rewrote it as a piece
                      6: ;;; of PL/1 on Multics.  Now I've moved it into an emacs-lisp
                      7: ;;; form.  If the original author cares to contact me, I'd
                      8: ;;; be very happy to credit you!
                      9: ;;;
                     10: ;;; Ian G. Batten, [email protected]
                     11: ;;;
                     12: 
                     13: (random t)
                     14: 
                     15: (defvar sentence
                     16:   '((how can you say that (statement) \?)
                     17:     (I can\'t believe how (adjective) you are\.)
                     18:     (only a (der-term) like you would say that (statement) \.)
                     19:     ((statement) \, huh\?) (so\, (statement) \?)
                     20:     ((statement) \, right\?) (I mean\, (sentence))
                     21:     (don\'t you realise that (statement) \?)
                     22:     (I firmly believe that (statement) \.)
                     23:     (let me tell you something\, you (der-term) \, (statement) \.)
                     24:     (furthermore\, you (der-term) \, (statement) \.)
                     25:     (I couldn\'t care less about your (thing) \.)
                     26:     (How can you be so (adjective) \?)
                     27:     (you make me sick\.)
                     28:     (it\'s well known that (statement) \.)
                     29:     ((statement) \.)
                     30:     (it takes a (group-adj) (der-term) like you to say that (statement) \.)
                     31:     (I don\'t want to hear about your (thing) \.)
                     32:     (you\'re always totally wrong\.)
                     33:     (I\'ve never heard anything as ridiculous as the idea that (statement) \.)
                     34:     (you must be a real (der-term) to think that (statement) \.)
                     35:     (you (adjective) (group-adj) (der-term) \!)
                     36:     (you\'re probably (group-adj) yourself\.)
                     37:     (you sound like a real (der-term) \.)
                     38:     (why\, (statement) \!)
                     39:     (I have many (group-adj) friends\.)
                     40:     (save the (thing) s\!) (no nukes\!) (ban (thing) s\!)
                     41:     (I\'ll bet you think that (thing) s are (adjective) \.)
                     42:     (you know\, (statement) \.)
                     43:     (your (quality) reminds me of a (thing) \.)
                     44:     (you have the (quality) of a (der-term) \.)
                     45:     ((der-term) \!)
                     46:     ((adjective) (group-adj) (der-term) \!)
                     47:     (you\'re a typical (group-adj) person\, totally (adjective) \.)
                     48:     (man\, (sentence))))
                     49: 
                     50: (defvar sentence-loop (nconc sentence sentence))
                     51: 
                     52: 
                     53: (defvar quality
                     54:   '((ignorance) (stupidity) (worthlessness)
                     55:     (prejudice) (lack of intelligence) (lousiness)
                     56:     (bad grammar) (lousy spelling)
                     57:     (lack of common decency) (ugliness) (nastiness)
                     58:     (subtlety) (dishonesty) ((adjective) (quality))))
                     59: 
                     60: 
                     61: (defvar quality-loop (nconc quality quality))
                     62: 
                     63: (defvar adjective
                     64:   '((ignorant) (crass) (pathetic) (sick)
                     65:     (bloated) (malignant) (perverted) (sadistic)
                     66:     (stupid) (unpleasant) (lousy) (abusive) (bad)
                     67:     (braindamaged) (selfish) (improper) (nasty)
                     68:     (disgusting) (foul) (intolerable) (primitive)
                     69:     (depressing) (dumb) (phoney)
                     70:     ((adjective) and (adjective))
                     71:     (as (adjective) as a (thing))))
                     72: 
                     73: (defvar adjective-loop (nconc adjective adjective))
                     74: 
                     75: (defvar der-term
                     76:   '(((adjective) (der-term)) (sexist) (fascist)
                     77:     (weakling) (coward) (beast) (peasant) (racist)
                     78:     (cretin) (fool) (jerk) (ignoramus) (idiot)
                     79:     (wanker) (rat) (slimebag) (DAF driver)
                     80:     (Neanderthal) (sadist) (drunk) (capitalist)
                     81:     (wimp) (dogmatist) (wally) (maniac)
                     82:     (whimpering scumbag) (pea brain) (arsehole)
                     83:     (moron) (goof) (incompetant) (lunkhead) (Nazi)
                     84:     (SysThug) ((der-term) (der-term))))
                     85: 
                     86: (defvar der-term-loop (nconc der-term der-term))
                     87: 
                     88: 
                     89: (defvar thing
                     90:   '(((adjective) (thing)) (computer)
                     91:     (Honeywell dps8) (whale) (operation)
                     92:     (sexist joke) (ten-incher) (dog) (MicroVAX II)
                     93:     (source license) (real-time clock)
                     94:     (mental problem) (sexual fantasy)
                     95:     (venereal disease) (Jewish grandmother)
                     96:     (cardboard cut-out) (punk haircut) (surfboard)
                     97:     (system call) (wood-burning stove)
                     98:     (graphics editor) (right wing death squad)
                     99:     (disease) (vegetable) (religion)
                    100:     (cruise missile) (bug fix) (lawyer) (copyright)
                    101:     (PAD)))
                    102: 
                    103: (defvar thing-loop (nconc thing thing))
                    104: 
                    105: 
                    106: (defvar group-adj
                    107:   '((gay) (old) (lesbian) (young) (black)
                    108:     (Polish) ((adjective)) (white)
                    109:     (mentally retarded) (Nicaraguan) (homosexual)
                    110:     (dead) (underpriviledged) (religious)
                    111:     ((thing) \-loving) (feminist) (foreign)
                    112:     (intellectual) (crazy) (working) (unborn)
                    113:     (Chinese) (short) ((adjective)) (poor) (rich)
                    114:     (funny-looking) (Puerto Rican) (Mexican)
                    115:     (Italian) (communist) (fascist) (Iranian)
                    116:     (Moonie)))
                    117: 
                    118: (defvar group-adj-loop (nconc group-adj group-adj))
                    119: 
                    120: (defvar statement
                    121:   '((your (thing) is great) ((thing) s are fun)
                    122:     ((person) is a (der-term))
                    123:     ((group-adj) people are (adjective))
                    124:     (every (group-adj) person is a (der-term))
                    125:     (most (group-adj) people have (thing) s)
                    126:     (all (group-adj) dudes should get (thing) s)
                    127:     ((person) is (group-adj)) (trees are (adjective))
                    128:     (if you\'ve seen one (thing) \, you\'ve seen them all)
                    129:     (you\'re (group-adj)) (you have a (thing))
                    130:     (my (thing) is pretty good)
                    131:     (the Martians are coming)
                    132:     (the (paper) is always right)
                    133:     (just because you read it in the (paper) that doesn\'t mean it\'s true)
                    134:     ((person) was (group-adj))
                    135:     ((person) \'s ghost is living in your (thing))
                    136:     (you look like a (thing))
                    137:     (the oceans are full of dirty fish)
                    138:     (people are dying every day)
                    139:     (a (group-adj) man ain\'t got nothing in the world these days)
                    140:     (women are inherently superior to men)
                    141:     (the system staff is fascist)
                    142:     (there is life after death)
                    143:     (the world is full of (der-term) s)
                    144:     (you remind me of (person)) (technology is evil)
                    145:     ((person) killed (person))
                    146:     (the Russians are tapping your phone)
                    147:     (the Earth is flat)
                    148:     (it\'s OK to run down (group-adj) people)
                    149:     (Multics is a really (adjective) operating system)
                    150:     (the CIA killed (person))
                    151:     (the sexual revolution is over)
                    152:     (Lassie was (group-adj))
                    153:     (the (group-adj) s have really got it all together)
                    154:     (I was (person) in a previous life)
                    155:     (breathing causes cancer)
                    156:     (it\'s fun to be really (adjective))
                    157:     ((quality) is pretty fun) (you\'re a (der-term))
                    158:     (the (group-adj) culture is fascinating)
                    159:     (when ya gotta go ya gotta go)
                    160:     ((person) is (adjective))
                    161:     ((person) \'s (quality) is (adjective))
                    162:     (it\'s a wonderful day)
                    163:     (everything is really a (thing))
                    164:     (there\'s a (thing) in (person) \'s brain)
                    165:     ((person) is a cool dude)
                    166:     ((person) is just a figment of your imagination)
                    167:     (the more (thing) s you have, the better)
                    168:     (life is a (thing)) (life is (quality))
                    169:     ((person) is (adjective))
                    170:     ((group-adj) people are all (adjective) (der-term) s)
                    171:     ((statement) \, and (statement))
                    172:     ((statement) \, but (statement))
                    173:     (I wish I had a (thing))
                    174:     (you should have a (thing))
                    175:     (you hope that (statement))
                    176:     ((person) is secretly (group-adj))
                    177:     (you wish you were (group-adj))
                    178:     (you wish you were a (thing))
                    179:     (I wish I were a (thing))
                    180:     (you think that (statement))
                    181:     ((statement) \, because (statement))
                    182:     ((group-adj) people don\'t get married to (group-adj) people because (reason))
                    183:     ((group-adj) people are all (adjective) because (reason))
                    184:     ((group-adj) people are (adjective) \, and (reason))
                    185:     (you must be a (adjective) (der-term) to think that (person) said (statement))
                    186:     ((group-adj) people are inherently superior to (group-adj) people)
                    187:     (God is Dead)))
                    188: 
                    189: (defvar statement-loop (nconc statement statement))
                    190: 
                    191: 
                    192: (defvar paper
                    193:   '((Daily Mail) (Daily Express)
                    194:     (Centre Bulletin) (Sun) (Daily Mirror)
                    195:     (Daily Telegraph) (Beano) (Multics Manual)))
                    196: 
                    197: (defvar paper-loop (nconc paper paper))
                    198: 
                    199: 
                    200: (defvar person
                    201:   '((Reagan) (Ken Thompson) (Dennis Ritchie)
                    202:     (JFK) (the Pope) (Gadaffi) (Napoleon)
                    203:     (Karl Marx) (Groucho) (Michael Jackson)
                    204:     (Caesar) (Nietzsche) (Heidegger)
                    205:     (Henry Kissinger) (Nixon) (Castro) (Thatcher)
                    206:     (Attilla the Hun) (Alaric the Visigoth) (Hitler)))
                    207: 
                    208: (defvar person-loop (nconc person person))
                    209: 
                    210: (defvar reason
                    211:   '((they don\'t want their children to grow up to be too lazy to steal)
                    212:     (they can\'t tell them apart from (group-adj) dudes)
                    213:     (they\'re too (adjective))
                    214:     ((person) wouldn\'t have done it)
                    215:     (they can\'t spray paint that small)
                    216:     (they don\'t have (thing) s) (they don\'t know how)
                    217:     (they can\'t afford (thing) s)))
                    218: 
                    219: (defvar reason-loop (nconc reason reason))
                    220: 
                    221: (defmacro define-element (name)
                    222:   (let ((loop-to-use (intern (concat name "-loop"))))
                    223:     (` (defun (, (intern name)) nil
                    224:         (let ((step-forward (% (random) 10)))
                    225:           (if (< step-forward 0) (setq step-forward (- step-forward)))
                    226:           (prog1
                    227:               (nth step-forward (, loop-to-use))
                    228:             (setq (, loop-to-use) (nthcdr (1+ step-forward) (, loop-to-use)))))))))
                    229: 
                    230: (define-element "sentence")
                    231: (define-element "quality")
                    232: (define-element "adjective")
                    233: (define-element "der-term")
                    234: (define-element "group-adj")
                    235: (define-element "statement")
                    236: (define-element "thing")
                    237: (define-element "paper")
                    238: (define-element "person")
                    239: (define-element "reason")
                    240: 
                    241: (defun *flame nil
                    242:   (flame-expand '(sentence)))
                    243: 
                    244: (defun flame-expand (object)
                    245:   (cond ((atom object)
                    246:         object)
                    247:        (t (mapcar 'flame-expand (funcall (car object))))))
                    248: 
                    249: (defun flatten (list)
                    250:   (cond ((atom list)
                    251:         (list list))
                    252:        (t (apply 'append (mapcar 'flatten list)))))
                    253: 
                    254: (defun flame (arg)
                    255:   "Generate ARG (default 1) sentences of half-crazed gibberish."
                    256:   (interactive "p")
                    257:   (let ((w (selected-window)))
                    258:     (pop-to-buffer (get-buffer-create "*Flame*"))
                    259:     (goto-char (point-max))
                    260:     (insert ?\n)
                    261:     (flame2 arg)
                    262:     (select-window w)))
                    263: 
                    264: (defun flame2 (arg)
                    265:   (let ((start (point)))
                    266:     (flame1 arg)
                    267:     (fill-region-as-paragraph start (point) t)))
                    268: 
                    269: (defun flame1 (arg)
                    270:   (cond ((zerop arg) t)
                    271:        (t (insert (concat (sentence-ify (string-ify (append-suffixes-hack (flatten (*flame)))))))
                    272:           (flame1 (1- arg)))))
                    273: 
                    274: (defun sentence-ify (string)
                    275:   (concat (upcase (substring string 0 1))
                    276:          (substring string 1 (length string))
                    277:          "  "))
                    278: 
                    279: (defun string-ify (list)
                    280:   (mapconcat
                    281:    '(lambda (x)
                    282:       (format "%s" x))
                    283:    list
                    284:    " "))
                    285: 
                    286: (defun append-suffixes-hack (list)
                    287:   (cond ((null list)
                    288:         nil)
                    289:        ((memq (nth 1 list)
                    290:               '(\? \. \, s\! \! s \'s \-loving))
                    291:         (cons (intern (format "%s%s" (nth 0 list) (nth 1 list)))
                    292:               (append-suffixes-hack (nthcdr 2 list))))
                    293:        (t (cons (nth 0 list)
                    294:                 (append-suffixes-hack (nthcdr 1 list))))))
                    295: 
                    296: (defun psychoanalyze-flamer ()
                    297:   "Mr. Angry goes to the analyst."
                    298:   (interactive)
                    299:   (doctor)                             ; start the psychotherapy
                    300:   (message "")
                    301:   (switch-to-buffer "*doctor*")
                    302:   (sit-for 0)
                    303:   (while (not (input-pending-p))
                    304:     (flame2 (if (= (% (random) 2) 0) 2 1))
                    305:     (sit-for 0)
                    306:     (doctor-ret-or-read 1)))

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.