
jhaungs
Regular Expressions Machinery: Confusing/inconsistent diagram and text (pages 10, 11)
In the diagram, the transition images across the top and down the right are: heads then heads, but the text says “accept state … if we first get a tails, then another tails.”
Also, the use of two images in each Coin in the alphabet is confusing, as a coin has only one face at a time.
Most Liked

jhaungs
Hi Staffan,
Happy to spot things like this. Your book is excellent; I’m really enjoying it.
I had another one, more a refinement than an error. I’ve been a programmer for 50+ years, so I was around when ASCII was invented. Your description of the “pillow” character on page 34 (of the PDF) is not precise. ASCII is generally considered to be 0-127. The “upper” ASCII plane (where the pillow is at 164) is considered “Extended ASCII” as it requires an 8th bit. There were many names for this extended plane over the years, but to call it unqualified ASCII is imprecise and confused me at first. I’m sensitive to confusion, because if it confuses me, it’ll confuse others. A better way to describe it would be as Extended ASCII, or even better, as Unicode, where it was introduced in 1993.
But honestly, as writers and editors like to say, “kill your darlings.” You could throw this side note away; it has only minor historical curiosity as the currency idea experienced only sporadic adoption, but more importantly, the side note adds nothing to the discussion of the pillow designating the empty set.
Jim
Popular Prag Prog topics










Other popular topics









Latest in PragProg
Latest (all)
Categories:
Popular Portals
- /elixir
- /rust
- /wasm
- /ruby
- /erlang
- /phoenix
- /keyboards
- /js
- /rails
- /python
- /security
- /go
- /swift
- /vim
- /clojure
- /java
- /haskell
- /emacs
- /svelte
- /onivim
- /typescript
- /crystal
- /c-plus-plus
- /tailwind
- /kotlin
- /gleam
- /react
- /flutter
- /elm
- /ocaml
- /vscode
- /opensuse
- /ash
- /centos
- /php
- /deepseek
- /scala
- /zig
- /html
- /debian
- /nixos
- /lisp
- /agda
- /textmate
- /sublime-text
- /react-native
- /kubuntu
- /arch-linux
- /revery
- /ubuntu
- /manjaro
- /django
- /spring
- /diversity
- /lua
- /nodejs
- /julia
- /c
- /slackware
- /neovim