Tim Bradshaw

tfeb.org · Personal blog · on HN since 2007

Tim Bradshaw writes about Common Lisp, macros, Lisp machines, and old Usenet culture, along with a long-running collection of Lisp hacks.

What HN saysHN commenters link his Lisp hacks as examples of DSL-style macro tricks and his Mad people of comp.lang.lisp page for Usenet history.
20HN people shared it
8linked it in comments
20stories submitted
371story points
12 months agolast shared
2007people per year2026

Most-shared posts

  1. 1
    Lisp hacks
    4 people · 17 points · first shared 2009 · discussion on HN
  2. 2
    Mad people
    3 people · first shared 2011
  3. 3
    The lost cause of the Lisp machines
    2 people · 186 points · first shared 2025 · 171 comments on HN
  4. 4
    The endless droning about Common Lisp IDEs
    2 people · 8 points · first shared 2021 · 1 comments on HN
  5. 5
    Metatronic macros: a simple way to write hygienic macros
    2 people · 4 points · first shared 2022 · discussion on HN
  6. 6
    How to understand closures in Common Lisp
    2 people · 1 points · first shared 2023 · discussion on HN
  7. 7
    Štar: an iteration construct for Common Lisp
    1 people · 100 points · first shared 2024 · 35 comments on HN
  8. 8
    Vector Supercomputers
    1 people · 33 points · first shared 2021 · 21 comments on HN
  9. 9
    The Empty List
    1 people · 6 points · first shared 2022 · discussion on HN
  10. 10
    Wild Pathnames in Common Lisp
    1 people · 4 points · first shared 2024 · 1 comments on HN
  11. 11
    Two understandable deficiencies in Common Lisp
    1 people · 4 points · first shared 2022 · 1 comments on HN
  12. 12
    The Absurdity Of Stacks
    1 people · 3 points · first shared 2023 · discussion on HN
  13. 13
    Lisp toys
    1 people · 2 points · first shared 2011 · discussion on HN
  14. 14
    Two Tiny Lisp Evaluators
    1 people · 1 points · first shared 2023 · discussion on HN
  15. 15
    Simple Logging in Common Lisp
    1 people · 1 points · first shared 2022 · discussion on HN

What HN people wrote when they linked it

aerique · 2013-03-26
See cl-who for another example: http://weitz.de/cl-who/#syntax Also, this has nothing to do with functional programming but rather with creating a DSL (http://en.wikipedia.org/wiki/Domain-specific_language) More links: • http://www.tfeb.org/lisp/hax.html#HTOUT • https://github.com/franzinc/aserve/blob/master/htmlgen/test.cl
gtani · 2011-03-10
Sadly, these multiple identities are not angry enough to qualify him as a "Mad people of comp.lang.lisp" http://www.tfeb.org/lisp/mad-people.html
gnosis · 2011-01-19
Some of the personalities who appear in that thread are mentioned in this list of "Mad people of comp.lang.lisp": http://www.tfeb.org/lisp/mad-people.html
mahmud · 2010-06-28
A lisp with T, NIL, if, and lambda, like "tiny-lisp" here: http://tfeb.org/lisp/hax.html#CONDUITS Literally, a package hack with zero implementation :-) Import defmacro and friends and you have it.
nickb · 2007-06-07
BTW, this is Tim's page on Lisp: http://www.tfeb.org/lisp/index.html
a-french-anon · 2024-11-12
Tried to contribute to a Go project a few months ago and got bitten by https://github.com/golang/go/issues/67296 due to questionable doc quality. I was pretty disappointed to find that natural sort isn't builtin since Go was the Unicode language in my mind (Go runes, made by some Plan 9 thus UTF-8 creators). Go has a lot of good points, but I immediately felt "dirty" when using it. Like that time when I tried to wrap a closure variable over itself ("my_closure = new closure calling my_closure") and needed to use a temporary variable because closure captures are always by reference: if you want to build abstractions, you got to think them better; as it stands, this is the worst of both worlds I know (C++ makes capture type explicit and customizable, Common Lisp was designed by wizards who knew what to do cf https://www.tfeb.org/fragments/2023/02/22/how-to-understand-closures-i…
jimbokun · 2008-07-08
I think this is one of the failings of Common Lisp. For the example of snarfing a file into a single string, here are some examples of the fun you can have: http://www.emmett.ca/~sabetts/slurp.html http://www.tfeb.org/lisp/obscurities.html#SNARFING-FILES http://www.codecodex.com/wiki/index.php?title=Read_a_file_into_a_byte_… http://www.cl-user.net/asp/html-docs/process-file-snippset According to the first link, this turns out to be the most efficient and most idiomatic way to do it: (defun slurp-stream5 (stream) (let ((seq (make-array (file-length stream) :element-type 'character :fill-pointer t))) (setf (fill-pointer seq) (read-sequence seq stream)) seq)) Makes sense once you know what all the pieces mean, but not the first thing a new Common Lisp programmer will think of. Then, in the SNARFING-FILES link, turns out it's not correct for all files, anyway, and the "correct" version is considerably longer. EDIT: Oops. The code I pasted DID include the proper file length check (at the cost of reading into an array of characters, instead of a string). So ignore the last sentence of my (unedited) post.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close