Skip to content

Paragram

paragram · letter · validated

A text built by changing a single letter of a word to produce another, turning the alteration into the point of the line.

Provenance

  • Source: Traditional; a classical rhetorical figure
  • Attribution: traditional — classical or folk; no single origin to name
  • Checkability: self — decidable from the text and its parameters alone
  • Attested: codified — formulated as a rule by a tradition rather than declared by an author

Details

  • Kind: both
  • Languages: en
  • Requires: tokens, fold_diacritics
  • Deterministic: yes
  • In other languages: Paragramm (de), Paragramme (fr)

Notes

The checker needs no dictionary: both halves of the swap are in the text, so two words of a length differing in one place is the whole property. The generator does need one — it has to know that what it produced is a word — so apply requires lexicon.words and raises MissingCapability without it, while check keeps working on the core pack alone.

Prompt hint

Change one letter of a word to make another, and build the sentence on the swap.

Parameters

Name Type Default Description
fold_diacritics boolean True Treat accented letters as their base letter, and ß as ss.
minimum integer 1 How many swapped pairs are wanted.

Examples

cat-sat-mat

en — this text satisfies the procedure.

the cat sat on the mat

Source: constructed example

no-shared-length

en — this text does not satisfy the procedure.

one three seventeen

Source: constructed counterexample