Skip to content

Proofread/prose pass - #9

Merged
BruceEckel merged 14 commits into
masterfrom
proofread/prose-pass
Jun 17, 2026
Merged

Proofread/prose pass#9
BruceEckel merged 14 commits into
masterfrom
proofread/prose-pass

Conversation

@BruceEckel

Copy link
Copy Markdown
Owner

Other prose fixes

Bruce Eckel and others added 14 commits June 16, 2026 16:06
- 01 Introduction: example path 08_Decorators -> 12_Decorators (stale after
  the chapter renumber).
- 02 A Python Tour: remove stray backslash in the `#` code span; fix the
  malformed nested PEP 8 link.
- 03 Containers and Control Flow: "mentioned under Cleanup" now points at the
  Initialization and Cleanup chapter (Cleanup split out in the restructure).
- Logged one confusing-sentence rewrite (03:38) to PROOFREADING_FINDINGS.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 05 Modules and Packages: drop stale "(modules are described shortly)" aside
  (this is the modules chapter; they are introduced at the top).
- 06 Classes: "interfaces -all" -> "interfaces: all"; "name space(s)" ->
  "namespace(s)" (matches ch 05); add a missing period; repair the broken
  `show_msg()` inline-code span split across a line.
- Logged 4 findings for review: "structurally-typed" and "implicit global
  variable" (ch 04), "weak typing" terminology (ch 06), and the redundant
  module re-explanation in ch 06's Inheritance section.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 07 Initialization and Cleanup: "you saw __init__() do that above" now links
  to the Classes chapter (Classes split out ahead of this one).
- 08 Static Type Checking: "functions earlier in this chapter" -> "in the
  earlier chapters"; "so far this chapter has leaned on that freedom" -> "the
  book so far ...". This is its own chapter now, not the tail of one.
- 09 Testing: read clean, no changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Data Classes as Types, Functional Error Handling, and Decorators are recent,
polished chapters. No spelling, grammar, or clarity issues found. Checkpoint
only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
13 Comprehensions (older contributed content) had several clear errors, now
fixed: "built in" -> "built-in"; "list so, it is" -> "list, so it is";
"Would be more efficient" -> "It would be more efficient"; a comma splice and
missing article in the Set Comprehensions intro; "longer then" -> "longer
than"; "capitalised," -> "capitalized;"; a run-on plus missing period in the
Dictionary Comprehensions intro.

14 Metaprogramming and 15 Rethinking Objects: read clean, no changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
16 The Pattern Concept (older discursive content): "class of similar problem"
-> "problems"; "for awhile" -> "for a while"; "ie" -> "i.e.,".

17 Messenger and 18 Singleton: read clean (both recently rewritten).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 20 Fronting: "For example, or to keep track" -> "For example, to keep track".
- 21 State Machines: "copy-on write" -> "copy-on-write".
- 19 Application Frameworks: read clean.
- Logged 2 findings in ch 21: the StateT paragraph describes a Java Map/null/
  2-D array that does not match the Python dict/None code; and exercises 6/7/12
  use Java vocabulary (HashMap, String, nextState(), hasNext()/false) and a
  missing transition_table.py.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
23 Factory: "it happens to be a `String`" -> "a string" (Java capitalization);
a mid-sentence capital "Is only executed" -> "is only executed".

22 Iterators and 24 Function Objects: read clean (both recently rewritten).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 25 Changing the Interface: "as singleton abstract factory" -> "as a
  singleton abstract factory".
- 26 Observer: mid-sentence "To surround your method" -> "to surround"; subject-
  verb fix "A grid of boxes each start" -> "A grid of boxes, each starting".
- 27 Multiple Dispatching: untangle "..., so how can you get them" -> "..., how
  can you get them".
- Logged 1 finding: Observer's opening paragraph is a sentence fragment with no
  main verb; proposed a rewrite.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
28 Visitor, 29 Pattern Refactoring, 30 Simulation: prose reads clean (29 and 30
are recent, polished chapters). Logged 1 finding: Visitor exercises 2-3 are
unconverted Java (Map, getClass(), cast expressions).

All 30 chapters proofread. Mechanical fixes were applied per batch; judgment
calls are collected in PROOFREADING_FINDINGS.md for review.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 04 Functions: "Python is a *structurally-typed* language" -> "Python is
  dynamically typed" (structural typing is the Protocol concept used elsewhere;
  this is plain dynamic typing).
- 06 Classes: "demonstrates weak typing" -> "duck typing"; "to provide weak
  typing in a strongly-typed language" -> "duck typing in a statically-typed
  language". Python is strongly typed, just dynamic; what f() shows is duck
  typing, and this no longer contradicts the chapter's own "dynamically typed".

Marked both findings APPLIED in PROOFREADING_FINDINGS.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@BruceEckel
BruceEckel merged commit cd8ec35 into master Jun 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant