Darius Bacon ([info]darius) wrote,
@ 2000-07-07 15:15:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
This week's meeting of my art class, last night, I actually enjoyed. I made a couple drawings that weren't total crap.

A few years ago a book came out named Oi, Robot, a collection of competition results from Fantasy and Science Fiction magazine. The title was from one of the competitions -- the game was to find a book title that could be changed by just one letter into a new, maximally silly one. So after I wrote that spelling correction code I used it to find some new title-changes. Here are some of the better results -- see if you can recognize the originals:

So you want to bed a wizard
Last and first fen
The man whom was Thursday
Evolution and the theory of gases
The howl service
His master's vice
Ban American childhood!
The thirteen cocks
Steering the crafty
Proofs and reputations
A mutter of oaths
The princes of the Nair
Software toils
Inevitable allusions
The rubber bride
Buddhism: pain and simple
The bully from the sea
The Blight that failed
Bloody Zones
The sneerswoman
The lord of toe rings
The Laughing Corps
This boor needs no title
Adjusting the moo

And here's the code to generate 'em. You add it to the spelling package I linked to before.

; Given a phrase (e.g. a book title) find all distance-1 misspellings
; of any of its words.  Output all the titles containing exactly one
; such misspelling.

(define (print-entries phrase)
  (for-each print (competition-entries phrase)))

(define (competition-entries phrase)
  (let ((words (map symbol->string phrase))
	(each-string->symbol
	 (lambda (strings) (map string->symbol strings))))
    (map each-string->symbol
	 (all-picks words (map find-misspellings words)))))

; Pre: (length WORDS) = (length MISSPELLINGS)
;      and MISSPELLINGS is a list of lists.
; Return a list of all ways to make a phrase with each word from either
; WORDS or MISSPELLINGS in the same position, such that each phrase has
; exactly one choice from MISSPELLINGS.
(define (all-picks words misspellings)
  (if (null? words)
      '()
      (append (map (lambda (misspelling)
		     (cons misspelling (cdr words)))
		   (car misspellings))
	      (map (lambda (rest) (cons (car words) rest))
		   (all-picks (cdr words) (cdr misspellings))))))

(define (find-misspellings word)
  (uniquify (map chars->word
		 (corrections dictionary (word->chars word) 1))))

(define chars->word list->string)

(define (uniquify ls)
  (let ((adjoin (lambda (x xs)
		  (if (member x xs) xs (cons x xs)))))
    (foldr adjoin '() ls)))



(Post a new comment)

Marvelous!
[info]shae
2000-07-12 12:00 am UTC (link)
You have some truly spiffy titles in there.
Software Toils is my favorite, tho not the niftiest of the bunch. I would say Lord of Toe Rings is the spiffiest of the titles listed.

I still want to see a picture of your new haircut!!

(Reply to this) (Thread)

Re: Marvelous!
[info]darius
2000-07-13 01:39 pm UTC (link)
Nice Princes in Amber was my favorite, but since I think it was in the original competition I left it out.

The haircut looks a lot like Chad's picture.

(Reply to this) (Parent)(Thread)

Re: Marvelous!
[info]darius
2000-07-13 01:41 pm UTC (link)
Heh. I didn't notice livejournal.com ignoring even with it staring me in the face. D'oh!

(Reply to this) (Parent)

Re: Marvelous!
(Anonymous)
2005-12-07 07:44 am UTC (link)
hey shae


what are u doin?im goin wel at schooldo u wanna come over?









(Reply to this) (Parent)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…