[net.emacs] Obfuscated mlisp contest results

steven@mcvax.UUCP (Steven Pemberton) (12/19/84)

OBFUSCATED MLISP CONTEST - RESULTS

Despite a very poor response to this competition (probably because I forgot
to announce it) the first prize of an all-expenses paid weekend for one in
Amsterdam, Sweden, goes to the author of this superb piece of obfuscated
mlisp, namely steven@mcvax. Congrats Steven! More of it!

To run this code, blurfl it into a buffer, execute-mlisp-buffer, and execute
the mlisp function 'surprise', answering the question with, for example, 4.

_______________CUT HERE______________KEEP CUTTING HERE________________________$

(defun
    (show
	(save-excursion
            (beginning-of-file)
            (sit-for 0)
        )
        (novalue)
    )
    (surprise limit i
        (setq limit (arg 1 "Value (3, 4, or 5): "))
        (pop-to-buffer "Surprise")
        (beginning-of-file) (set-mark) (end-of-file) (delete-to-killbuffer)
        (insert-string "  .   .   . \n =|=  |   | \n")
        (setq i 1)
        (while (< i limit)
            (end-of-file)
            (previous-line)
            (kill-to-end-of-line) (delete-next-character)
            (yank-from-killbuffer) (insert-string "\n")
            (yank-from-killbuffer) (insert-string "\n")
            (beginning-of-file)
            (replace-string " . " "  .  ")
            (replace-string " =" "  =")
            (replace-string "= " "=  ")
            (replace-string " | " "  |  ")
            (end-of-file) (previous-line)
            (replace-string " =" "==") (replace-string "= " "==")
            (setq i (+ i 1))
        )
        (beginning-of-file) (replace-string "." " ") (sit-for 20)
        (do-it limit 1 2 3)
	(beginning-of-file)
	(provide-prefix-argument 2 (search-forward "|"))
	(previous-line) (backward-character)
	(insert-string "*")
	(beginning-of-line)
	(kill-to-end-of-line)
	(yank-from-killbuffer)
	(end-of-file)
	(yank-from-killbuffer)
	(insert-string "\n") (previous-line)
	(delete-next-character) (replace-string "*" "y X")
	(delete-next-character) (re-replace-string "y.X" "p&m")
	(delete-next-character) (re-replace-string "p.*m" "p&a")
	(delete-next-character) (re-replace-string "p.*a" "a&s")
	(delete-next-character) (re-replace-string "a.*s" "H&!")
	(beginning-of-file) (search-forward "*") (backward-character)
        (novalue)
    )
    (raise i
        (while (looking-at "=*|")
            (setq i 1)
            (while (<= i 2)
                (setq i (+ i 1))
                (while (looking-at "=")
                    (delete-next-character) (insert-string " ")
                    (backward-character) (previous-line)
                    (delete-next-character) (insert-string "=")
                    (next-line)
                )
                (forward-character)
            )
            (previous-line)
            (search-reverse " =") (forward-character) (show)
        )
    )
    (lower i
        (next-line)
        (while (! (| (looking-at "=") (eobp)))
            (previous-line)
            (setq i 1)
            (while (<= i 2)
                (setq i (+ i 1))
                (while (looking-at "=")
                    (delete-next-character) (insert-string " ")
                    (backward-character) (next-line)
                    (delete-next-character) (insert-string "=")
                    (previous-line)
                )
                (forward-character)
            )
            (next-line)
            (search-reverse " =") (forward-character) (show)
            (next-line)
        )
    )
    (jiggle from to replacement
        (setq from (arg 1 "from: ")) (setq to (arg 2 "to: "))
        (beginning-of-file)
        (provide-prefix-argument from (search-forward "|"))
        (backward-character) (backward-character)
        (while (! (looking-at "=")) (next-line))
        (search-reverse " ") (forward-character)
        (raise)
        (beginning-of-file)
        (provide-prefix-argument to (search-forward "|"))
        (backward-character) (previous-line)
        (if (< from to) (setq replacement "  \\1") (setq replacement "\\1  "))
        (while (! (looking-at "="))
            (beginning-of-file)
            (re-replace-string " \\(==* ==*\\) " replacement) (show)
            (provide-prefix-argument to (search-forward "|"))
            (backward-character) (previous-line)
        )
        (while (! (looking-at " "))
            (beginning-of-file)
            (re-replace-string " \\(==* ==*\\) " replacement) (show)
            (provide-prefix-argument to (search-forward "|"))
            (backward-character) (previous-line)
        )
        (search-reverse " =") (forward-character)
        (lower)
        (novalue)
    )
    (do-it
        (if (> (arg 1) 0)
            (progn
                (do-it (- (arg 1) 1) (arg 2) (arg 4) (arg 3))
                (jiggle (arg 2) (arg 3))
                (do-it (- (arg 1) 1) (arg 4) (arg 3) (arg 2))
            )
        )
        (novalue)
    )
)

gertjan@txsil.UUCP (12/28/84)

Obfuscated not in my Prisma dictionary!