There is no denying that ASCII tab characters are an archaic
abomination [JWZ]. Savvy Emacs users might have noticed that the [Quack]
option variable quack-tabs-are-evil-p defaults to true. Note also
that quack-tidy gladly slays any tab in sight, laughing maniacally
as only the truly righteous can. Sadly, not all strings in the universe are
Scheme code subject to the wrath of Quack, therefore...
This very simple Scheme library provides procedures for expanding tab characters. It was written early one Sunday morning to complement the plethora of PLT-specific solutions being offered to the problem on the nascent Schematics cookbook Wiki. Its source code is a bit verbose, but it tries not to generate much garbage, it supports non-zero starting columns, and it should work with any R5RS Scheme implementation that supports [SRFI-6]. (A future edition of this continuing epic might remove the dependency on SRFI-6, should we bother to benchmark and find that some implementations are not as efficient as we'd like.)
At time of this writing, the author notes with no small amount of
interest that the Internet domain name tabexpand.com has not yet
been taken.
See documentation for cites and more info...
The current version of tabexpand.scm is 0.1 (9-May-2004).
You can download file tabexpand.scm, Scheme source code with embedded documentation.
You can download file tabexpand.html, documentation in HTML format.
You can download file tabexpand.pdf, documentation in PDF format.
You can download file tabexpand-0-1.plt, PLT Scheme package.