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