Skip to content

Calculator word

calculator_word · letter · validated

A word a seven-segment display can write, entered as digits and read by turning the machine over: 7353 is ESEL. The checker compares the letters the display actually shows, so an accented letter is not displayable unless fold_diacritics is asked for.

Provenance

  • Source: Michael Quinion, World Wide Words, "Beghilos" (2009); the practice dates to pocket LED calculators of the 1970s
  • Attribution: reference — attested in a standard reference rather than traced to an origin
  • 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, de, fr
  • Requires: tokens, lexicon.words, fold_diacritics
  • Deterministic: yes
  • In other languages: Taschenrechnerwort (de), Mot de calculatrice (fr)

Notes

The digit table is a module constant in core/calculator.py, not a pack capability: seven-segment geometry does not vary by orthography the way the ascenders prisoners_constraint reads from letter_shapes do (ADR 0037 D1). 6 and 9 both rotate onto G, so a word containing one has two digit spellings; check accepts either and apply emits 6 (D4), which is why apply is not the byte-for-byte inverse of check for about a third of every corpus. fold_diacritics defaults to false here and to true on every other row (D3): the display cannot write an accent or an ß, so folding would admit words the machine provably cannot show. apply draws from lexicon.graded_words where a pack declares it and from the noun list otherwise, so its corpus differs by language — German declares no graded words at all (ADR 0028), which is why apply_requires names the noun list rather than the richer source (D5).

Prompt hint

Write a word using only the letters B, E, G, H, I, L, O and S, then give the digits that spell it upside down on a calculator.

Parameters

Name Type Default Description
digits string 7353 The digits entered on the display, read by turning it over.
fold_diacritics boolean False Whether an accented letter counts as its base letter. False by default on this row alone: the display cannot write the accent.
require_words boolean True Whether each word must be one the language knows. False checks the display mapping alone, admitting any letter combination it can write.
words integer 1 How many words the digits must spell.

Examples

hello

en — this text satisfies the procedure.

hello

Parameters: digits='07734'

Source: attested; Michael Quinion, World Wide Words, "Beghilos" (2009). Verified by decoding the digits, not by transcribing them.

illegible-with-nine-for-g

en — this text satisfies the procedure.

illegible

Parameters: digits='378193771'

Source: attested; the circulating form uses 9 for the g, where this row's generator emits 6. Both decode to the same word — ADR 0037 D4.

illegible-with-six-for-g

en — this text satisfies the procedure.

illegible

Parameters: digits='378163771'

Source: constructed; the same word in the generator's own spelling

undisplayable-letter

en — this text does not satisfy the procedure.

cat

Parameters: digits='743'

Source: constructed counterexample; c, a and t are not on the display

displayable-but-not-a-word

en — this text does not satisfy the procedure.

hlose

Parameters: digits='35074'

Source: constructed counterexample; the display can write it, English does not know it. Fails on not_a_word, never on the mapping.

combinations-mode-admits-a-non-word

en — this text satisfies the procedure.

hlose

Parameters: digits='35074', require_words=False

Source: constructed; require_words=false checks the display mapping alone

esel

de — this text satisfies the procedure.

Esel

Parameters: digits='7353'

Source: traditional German schoolyard example; the canonical demonstration of the practice in German

igel-with-nine-for-g

de — this text satisfies the procedure.

Igel

Parameters: digits='7391'

Source: constructed; 6 and 9 both rotate onto G — ADR 0037 D4

two-words-read-last-first

de — this text satisfies the procedure.

Hose Esel

Parameters: digits='73533504', words=2

Source: constructed; the machine is read from the other end, so Hose Esel is entered as the digits of Esel followed by those of Hose

sharp-s-is-not-displayable

de — this text does not satisfy the procedure.

Geheiß

Parameters: digits='5513436'

Source: constructed counterexample; the display shows GEHEISS where German spells Geheiß, so this is not a calculator word under the row's default — ADR 0037 D3

sharp-s-under-explicit-folding

de — this text satisfies the procedure.

Geheiß

Parameters: digits='5513436', fold_diacritics=True

Source: constructed; the lenient reading stays reachable, only the default changed

wrong-digits

de — this text does not satisfy the procedure.

Esel

Parameters: digits='7354'

Source: constructed counterexample; Esel is 7353, not 7354

soleil

fr — this text satisfies the procedure.

soleil

Parameters: digits='713705'

Source: constructed example; verified by decoding, 713705 reads SOLEIL

accented-word-is-not-displayable

fr — this text does not satisfy the procedure.

blessé

Parameters: digits='355378'

Source: constructed counterexample; the display shows BLESSE where French spells blessé — ADR 0037 D3, and this row's fold default is false

accented-word-under-explicit-folding

fr — this text satisfies the procedure.

blessé

Parameters: digits='355378', fold_diacritics=True

Source: constructed; the lenient reading stays reachable