Annotation of 43BSDReno/contrib/emacs-18.55/lisp/flame.el, revision 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.