September 2007 Archives

I've been experimenting with Literate Programming, Excelsior, and spreadsheets, carrying on the topic that I talked about at EuSpRIG 2007.  Here at is a spreadsheet to demonstrate it, that generates SF stories. Select "recalculate" in cell B4, and watch a new story appear in cells A4 downwards.

It contains a graph, i.e. a network of nodes linked by edges. Each edge is associated with a chunk of story text. To generate a story, the spreadsheet starts at a node, randomly chooses one of the edges leading from it, outputs the story text associated with that edge, and then goes to the node at the end of that edge and repeats, continuing until it hits a node with no edges leading out of it. No VBA: this is entirely with Excel functions. The spreadsheet is explained in , in which I have tried to follow the kind of expository style often used in Literate Programming.

It's derived from the Prolog story-generator at This has its origins in Gahan Wilson's The Science Fiction Horror Movie Pocket Computer, published in The Year's Best Science Fiction No. 5, edited by Harry Harrison and Brian Aldiss. Anyone who joined the Oxford University AI Society may remember seeing the version on card that we used to stand at our yearly Freshers' Fair desk.

A Chinese child started to learn writing on his first day with the teacher. The teacher began by showing him how to write 一, the character for 'one'. The child said to himself: 'That was easy'. Then the teacher taught him to write 二, the character for 'two'. Seeing how easy it was to write 'two', the child became restless. Then he was shown how to write 三, the character for 'three'. Before he was asked to write it, he shouted in protest: 'I know how to write now!' The teacher said to him: 'You are a quick learner. So much for the lesson. Your homework for today is to write the character for "ten thousand".'
Teach Yourself Beginner's Chinese Script, by Elizabeth Scurfield and Song Lianyi.

About this Archive

This page is an archive of entries from September 2007 listed from newest to oldest.

October 2006 is the previous archive.

November 2007 is the next archive.

Find recent content on the main index or look in the archives to find all content.