This web application is based on Harry Mathews, "Mathew's Algorithm" in *Oulipo: A Primer of Potential Literature*, ed. and trans. Warren F. Motte Jr. (Normal, IL: Dalkey Archive Press, 1998), pp. 126-139. It offers the reader an opportunity to discover duplicities in texts and to "[track] down this otherness in language (and, perhaps, in what language talks about)".

The procedure Mathews describes is relatively simple:

Materials: Several--at least Two--Sets of Heterogeneous Elements Are Required

*Comment:*The heterogeneity can sometimes be minimal, but it is nonetheless essential for the proper functioning of the algorithm. The less it is respected, the more likely the machine will simply reproduce replicas of the original sets. In theory, to avoid any chance of this happening, the rule is that in a table of*n*elements,*n*^{2}- (*n*- 2) elements must be different. (Example: in a table of 4 sets of 4 elements, 14 of the 16 elements must differ.) In practice, however, it is often possible to lower this level of heterogeneity.Arrangement

All sets must contain the same number of elements.

Each element in a set must have a function equivalent to or consistent with the corresponding elements of the other sets. (If, for instance, the elements are words, the equivalence will be one of grammaical function.) In other words, the elements of each set must be arranged in the same order. (Not a

_{1}b_{1}c_{1}d_{1}and c_{2}a_{2}d_{2}b_{2}but a_{1}b_{1}c_{1}d_{1}and a_{2}b_{2}c_{2}d_{2}.)The sets are superimposed one above the other to form a table consisting of rows (the sets) and columns (the corresponding elements). Here is a table of 4 sets of 4 elements:

1 a _{1}b _{1}c _{1}d _{1}2 a _{2}b _{2}c _{2}d _{2}3 a _{3}b _{3}c _{3}d _{3}4 a _{4}b _{4}c _{4}d _{4}*Comment:*In all the examples, the number of elements in each set equals the number of sets. This is a convenience, not a requirement.

Operation

Shift each set

*n*- 1 places left. (In other words, shift the second set one place left, the third two places, etc.)1 a _{1}b _{1}c _{1}d _{1}2 b _{2}c _{2}d _{2}a _{2}3 c _{3}d _{3}a _{3}b _{3}4 d _{4}a _{4}b _{4}c _{4}Read the columns downward starting with the initial elements (

*a*) of the sets. Four new sets results:a _{1}b _{2}c _{3}d _{4}a _{4}b _{1}c _{2}d _{3}a _{3}b _{4}c _{1}d _{2}a _{2}b _{3}c _{4}d _{1}Perform the same manipulation with a shift

*right:*1 a _{1}b _{1}c _{1}d _{1}2 d _{2}a _{2}b _{2}c _{2}3 c _{3}d _{3}a _{3}b _{3}4 b _{4}c _{4}d _{4}a _{4}Read the results upward, still beginning with the initial elements (

*a*) of the original sets:a _{1}b _{2}c _{3}d _{4}a _{2}b _{1}c _{4}d _{3}a _{3}b _{2}c _{1}d _{4}a _{4}b _{3}c _{2}d _{1}In this way, from

*n*sets 2*n*sets can be obtained.

You can observe how the algorithm works with a subset of Raymond Queneau's *Exercices de Style.*

You can also paste elements from your own texts, beginning with the form below.

How many texts are you working with?

How many elements are in each text?