| ”Bracket loop bracket print bracket…” A screen reader need not literally read what’s on screen. It typically doesn’t with prose, where punctuation isn’t spoken, but affects timing and intonation, and abbreviations often are expanded (iOS speaks “Dr. John St.” as “Doctor John Street”, for example, but “St. John Dr.” as “Saint John dee-ar”. MacinTalk used to know that ‘Dr’ means ‘Drive’) So, it need not do that here, and could say “call read, eval it, print the result, and call loop on print’s output” , using intonation or voice to indicate the difference between content read from the screen and text describing it. Farfetched? Maybe, but take a look at what screen readers do with html. A screen reader that knows lisp semantics could go even further, and replace loop by repeat forever or something like it. |
This seems more reasonable but how do you write the second example? Like “with foo opened as standard output, print x; also print y”?
There are reasonably large semantic differences in such cases and many programming languages, including lisp, express them with subtle hard-to-pronounce differences in indentation or parenthising of expressions.