content/blog/2022/04/fun-with-macros-do-file.markdown @ ff107268c4e3
Links, etc
author |
Steve Losh <steve@stevelosh.com> |
date |
Wed, 21 Aug 2024 09:10:34 -0400 |
parents |
351848b6eab4 |
children |
(none) |
(:title "Fun with Macros: With-EOF-Handled"
:snip "Part 4 in a series of short posts about fun Common Lisp Macros."
:date "2024-06-23T13:45:00Z"
:draft t)
It's been a while (again), but it's time to take a look at another little Common
Lisp macro that I find myself using fairly often: `with-eof-handled`.
<div id="toc"></div>
## Usage
Common Lisp has several functions for reading from character streams, e.g.
`read-char` and `read-line`. The arguments for these functions follow a common
pattern where they take `(&optional input-stream eof-error-p eof-value)` (and
one more argument that's not relevant here). By default, calling one of these
functions will signal an error if an end of file occurs. You can change this by
passing true as the `eof-error-p` argument (which, despite its `-p` suffix
should be a (generalized) boolean, *not* a predicate), in which case the
`eof-value` will be returned instead of signaling an error.
```lisp
```
## Implementation
## Result