It was interesting to read
Common Lisp: The Untold Story
Kent M. Pitman
HyperMeta Inc.
http://www.nhplace.com/kent/
Julieta Shem <jshem@yaxenu.org> writes:
It was interesting to read
Common Lisp: The Untold Story
Kent M. Pitman
HyperMeta Inc.
http://www.nhplace.com/kent/
Yes, thanks for the link. Since he mentioned subsetting the (huge)
language in another article,
https://nhplace.com/kent/PS/dpANS.html
I searched around for subsets (not very fruitful), but I did happen to
find one quite interesting online textbook (apart from the usual
suspects), "Learn Lisp the hard way":
https://llthw.common-lisp.dev/
Might be interesting for you as well. I seem to remember that you found
the classics (Seibel, Touretzky) very readable and enjoyed them (I
worked through the Touretzky years ago, but stalled on the Seibel,
perhaps due to lack of exercises). "On Lisp" and even more so "Let over Lambda" are more advanced, while the above link seems to be more
"modern" in the sense of being written not in the 90s or early
2000s. Not that the language itself has changed, but the IT world has
changed a lot since then, and my hope is that this is reflected in
the approach. But I am still quite at the beginning.
I came across new introductory material in a personalised style, which
may appeal to some readers (or put some off)
"Rabbi Botton" The common Lisp Tutorial, Fast, Fun Practical Quickstart
(with CLOG), 2024
https://rabbibotton.github.io/clog/cltt.pdf
[I could excuse uncouth alien in cover pic but my aged eyes (brought up
on computer modern) couldn't abide with the typography, fonts, and
layout, which stinks of "modern css", grey on white sans fonts with css tricks for code blocks, which makes it look like a cheap modern webpage
as with the other unreadable pdf material i've download, pdfinfo reveals
the same culprit: Creator: Chromium Producer: Skia/PDF m120 or Producer: Skia/PDF m122 Google Docs Renderer etc]
Julieta Shem <jshem@yaxenu.org> writes:
It was interesting to read
Common Lisp: The Untold Story
Kent M. Pitman
HyperMeta Inc.
http://www.nhplace.com/kent/
Yes, thanks for the link. Since he mentioned subsetting the (huge)
language in another article,
https://nhplace.com/kent/PS/dpANS.html
I searched around for subsets (not very fruitful), but I did happen to
find one quite interesting online textbook (apart from the usual
suspects), "Learn Lisp the hard way":
https://llthw.common-lisp.dev/
Might be interesting for you as well. I seem to remember that you found
the classics (Seibel, Touretzky) very readable and enjoyed them (I
worked through the Touretzky years ago, but stalled on the Seibel,
perhaps due to lack of exercises).
"On Lisp" and even more so "Let over Lambda" are more advanced,
while the above link seems to be more "modern" in the sense of being
written not in the 90s or early 2000s. Not that the language itself
has changed, but the IT world has changed a lot since then, and my
hope is that this is reflected in the approach. But I am still quite
at the beginning.
... my aged eyes (brought up on computer modern) ...
I wish we had a tool like CWEB but for Common Lisp. The stability of
Common Lisp seems promising. (I use Norman Ramsey's noweb. It
produces a beautiful document.)
http://mainesail.umcs.maine.edu/MaineSAIL/publications/papers/2010/lplisp-tr.pdf
I don't know whether the code is available but it may be possible to
track down the author.
Axel Reichert <mail@axel-reichert.de> writes:
https://llthw.common-lisp.dev/
It's an in-progress draft. It's looking pretty good.
Are you writing a program? I think that's super important. Do things
from beginning to the end.
I'm very fond of literate programming
I wish we had a tool like CWEB but for Common Lisp. The stability of
Common Lisp seems promising. (I use Norman Ramsey's noweb. It
produces a beautiful document.)
This paper presents LP/lisp, a literate programming tool for Common
Lisp:
On Tue, 30 Jan 2024 00:37:02 -0300
Julieta Shem <jshem@yaxenu.org> wrote:
I wish we had a tool like CWEB but for Common Lisp. The stability of
Common Lisp seems promising. (I use Norman Ramsey's noweb. It
produces a beautiful document.)
This paper presents LP/lisp, a literate programming tool for Common
Lisp:
Literate Programming in Lisp (LP/Lisp) http://mainesail.umcs.maine.edu/MaineSAIL/publications/papers/2010/lplisp-tr.pdf
I don't know whether the code is available but it may be possible to
track down the author.
On 2024-01-30, Paolo Amoroso wrote:
On Tue, 30 Jan 2024 00:37:02 -0300
Julieta Shem <jshem@yaxenu.org> wrote:
I wish we had a tool like CWEB but for Common Lisp. The stability of
Common Lisp seems promising. (I use Norman Ramsey's noweb. It
produces a beautiful document.)
This paper presents LP/lisp, a literate programming tool for Common
Lisp:
Literate Programming in Lisp (LP/Lisp)
http://mainesail.umcs.maine.edu/MaineSAIL/publications/papers/2010/lplisp-tr.pdf
I don't know whether the code is available but it may be possible to
track down the author.
Could it be this?
http://mainesail.umcs.maine.edu/MaineSAIL/software/code/lplisp.lisp
(linked from http://mainesail.umcs.maine.edu/MaineSAIL/software/, but
also see http://mainesail.umcs.maine.edu/MaineSAIL/software/code/ for a directory listing)
On Tue, 30 Jan 2024 00:37:02 -0300
Julieta Shem <jshem@yaxenu.org> wrote:
I wish we had a tool like CWEB but for Common Lisp. The stability of
Common Lisp seems promising. (I use Norman Ramsey's noweb. It
produces a beautiful document.)
This paper presents LP/lisp, a literate programming tool for Common
Lisp:
Literate Programming in Lisp (LP/Lisp) http://mainesail.umcs.maine.edu/MaineSAIL/publications/papers/2010/lplisp-tr.pdf
On Tue, 30 Jan 2024 09:15:26 +0100, Paolo Amoroso wrote:
This paper presents LP/lisp, a literate programming tool for Common
Lisp:
Every time I hear “literate programming” nowadays, I think “why not use a
Jupyter notebook”?
Lawrence D'Oliveiro <ldo@nz.invalid> writes:
On Tue, 30 Jan 2024 09:15:26 +0100, Paolo Amoroso wrote:
This paper presents LP/lisp, a literate programming tool for Common
Lisp:
Every time I hear “literate programming” nowadays, I think “why not use
a Jupyter notebook”?
My understanding is that these notebooks target interaction. Literate programming targets presentation.
One can make it so like these notebooks have, but as far as I know Knuth never had such thing in mind. Knuth's idea is that a program should be literary work---it should be able to win a Pulitzer prize.
On 2024-02-01, Julieta Shem <jshem@yaxenu.org> wrote:
One can make it so like these notebooks have, but as far as I know Knuth
never had such thing in mind. Knuth's idea is that a program should be
literary work---it should be able to win a Pulitzer prize.
Unfortunately, Knuth's implementation consists of sheer crockery: a
crude macro system which pulls a program together from named
fragments, which chop the program text along arbitrary boundaries.
Knuth's system is merely useless, but would be actively harmful in the context of software engineering in an organization in which many people
work on a program. Or even just two or three people.
On Wed, 31 Jan 2024 19:02:58 -0300, Julieta Shem wrote:
Lawrence D'Oliveiro <ldo@nz.invalid> writes:
On Tue, 30 Jan 2024 09:15:26 +0100, Paolo Amoroso wrote:
This paper presents LP/lisp, a literate programming tool for Common
Lisp:
Every time I hear “literate programming” nowadays, I think “why not use
a Jupyter notebook”?
My understanding is that these notebooks target interaction. Literate
programming targets presentation.
So is this “presentation” not supposed to be so interactive?
One of the things that helps people understand code is being able to mess with it.
Kaz Kylheku <433-929-6894@kylheku.com> writes:
On 2024-02-01, Julieta Shem <jshem@yaxenu.org> wrote:
One can make it so like these notebooks have, but as far as I know Knuth >>> never had such thing in mind. Knuth's idea is that a program should be
literary work---it should be able to win a Pulitzer prize.
Unfortunately, Knuth's implementation consists of sheer crockery: a
crude macro system which pulls a program together from named
fragments, which chop the program text along arbitrary boundaries.
Knuth's system is merely useless, but would be actively harmful in the
context of software engineering in an organization in which many people
work on a program. Or even just two or three people.
It seems that the world did not enjoy the idea so much, consequently
perhaps the idea did not evolve. If people were really interested in >literate programming, tools would have evolved too.
``The correct way to explain a complex thing is to break it into parts...
and then explain each part;
-- Donald E. Knuth, Tracy Larrabee, and Paul M. Roberts, 1987.
On Wed, 31 Jan 2024 23:09:31 -0300, Julieta Shem <jshem@yaxenu.org>
wrote:
Kaz Kylheku <433-929-6894@kylheku.com> writes:
On 2024-02-01, Julieta Shem <jshem@yaxenu.org> wrote:
One can make it so like these notebooks have, but as far as I know Knuth >>>> never had such thing in mind. Knuth's idea is that a program should be >>>> literary work---it should be able to win a Pulitzer prize.
Unfortunately, Knuth's implementation consists of sheer crockery: a
crude macro system which pulls a program together from named
fragments, which chop the program text along arbitrary boundaries.
Knuth's system is merely useless, but would be actively harmful in the
context of software engineering in an organization in which many people
work on a program. Or even just two or three people.
It seems that the world did not enjoy the idea so much, consequently >>perhaps the idea did not evolve. If people were really interested in >>literate programming, tools would have evolved too.
Scribble[1] supports literate programming. It works in the same way
as Knuth's tools - extracting chunks of code from the document and
stitching them together ... but it is integrated with the programming environment, so it is a lot easier to use than, e.g., CWEB.
Paolo Amoroso <info@paoloamoroso.com> writes:
On Tue, 30 Jan 2024 00:37:02 -0300
Julieta Shem <jshem@yaxenu.org> wrote:
I wish we had a tool like CWEB but for Common Lisp. The stability of
Common Lisp seems promising. (I use Norman Ramsey's noweb. It
produces a beautiful document.)
This paper presents LP/lisp, a literate programming tool for Common
Lisp:
Literate Programming in Lisp (LP/Lisp)
http://mainesail.umcs.maine.edu/MaineSAIL/publications/papers/2010/lplisp-tr.pdf
Thanks! That was an interesting read. Glad to see there's this option.
I'm not sure I'd switch from noweb to lplisp, but I'm going to give it a
try. I'll report here what I find.
(*) On LP/Lisp and noweb
Literate Programming in Lisp (LP/Lisp)
Roy M. Turner
--8<---------------cut here---------------start------------->8---
You may ask, why another literate programming tool? Why not use
something like the excellent noweb package? Well, there are some
problems with using that model of literate programming for interpreted languages like Lisp. For a compiled language, introducing another step---translating from the literate programming “source” file to the language’s source code---is not particularly problematic. However, the typical Lisp programming model involves incremental development and,
most of all, interactive debugging. So the programmer usually writes the code, then, when there is a bug, fixes the problem in an Emacs buffer, evaluates the changed definition, and continues. With something like
noweb, this isn’t really practical. Changes to in the Lisp code don’t migrate back to the noweb source code, and there are no tools I’m aware
of that support debugging and incremental evaluation directly from the
noweb source.
--8<---------------cut here---------------end--------------->8---
That's quite right. I patiently deal with this. I automate the file generation with a Makefile, revert the buffer in EMACS and continue the debugging. When I'm satisfied, I copy the new code to the NOWEB file
and continue.
I wish we had a tool like CWEB but for Common Lisp. The stability of
Common Lisp seems promising. (I use Norman Ramsey's noweb. It
produces a beautiful document.)
Have you tried org-mode and org-babel in Emacs? Should be a nice
combination.
Totally doable for someone who knows the literate programming tool very
well and also LaTeX---not me.
On Fri, 02 Feb 2024 12:16:33 -0300, Julieta Shem wrote:
Totally doable for someone who knows the literate programming tool very
well and also LaTeX---not me.
I could never get to grips with the TEX family of tools.
troff/groff, on the other hand, turned out to be quite easy to get to
grips with. I can use it to produce man pages, and also render those same pages in typeset quality with a simple, short command.
George Neuner <gneuner2@comcast.net> writes:
Scribble[1] supports literate programming. It works in the same way
as Knuth's tools - extracting chunks of code from the document and
stitching them together ... but it is integrated with the programming
environment, so it is a lot easier to use than, e.g., CWEB.
I suppose you don't mean easier for writing C. I don't think Scribble
would be integrated with the C compiler as CWEB is. But I do think that >Scribble is in general the correct approach to the problem. I would
love to stop and learn how to use it. I would love to stop and build a
LaTeX layout similar to the one NOWEB provides.
This is getting off-topic---I wonder if we should continue here.
On Fri, 02 Feb 2024 23:35:39 -0500
George Neuner <gneuner2@comcast.net> wrote:
On Fri, 02 Feb 2024 19:26:12 -0300, Julieta Shem <jshem@yaxenu.org>
wrote:
This is getting off-topic---I wonder if we should continue here.
Historically, wandering discussions were not uncommon.
[Been reading c.l.l since early 90's.]
They still are (comp.lang.c has many at present) but I think they should be discouraged. Especially now that usenet has fewer people , it is extra important to keep as many newsgroups as possible alive with on topic discussion.
Do you have online examples of these man pages you rendered in typeset quality?
On Fri, 02 Feb 2024 11:27:34 -0300, Julieta Shem <jshem@yaxenu.org>
wrote:
George Neuner <gneuner2@comcast.net> writes:
Scribble[1] supports literate programming. It works in the same way
as Knuth's tools - extracting chunks of code from the document and
stitching them together ... but it is integrated with the programming
environment, so it is a lot easier to use than, e.g., CWEB.
I suppose you don't mean easier for writing C. I don't think Scribble >>would be integrated with the C compiler as CWEB is. But I do think that >>Scribble is in general the correct approach to the problem. I would
love to stop and learn how to use it. I would love to stop and build a >>LaTeX layout similar to the one NOWEB provides.
Wasn't thinking about C per se - just comparing tools.
Scribble actually doesn't care what is in a "code" fragment - you can
put anything there so long as you don't care to execute it. However, Scribble documents can be executable if the fragments are in Racket or
are in a #lang that translates to Racket.
On Fri, 02 Feb 2024 19:26:12 -0300, Julieta Shem wrote:
Do you have online examples of these man pages you rendered in typeset
quality?
Of the source, yes. The biggest such collection would be here <https://gitlab.com/ldo/render-useful>.
An example of viewing a typeset rendition of one of them:
groff -ktman -Tpdf render-batch.1 | okular - &
(I like to put “&” on the end of GUI commands, so the terminal session
is free for another command while I continue viewing the output.)
about the Scribble files. Scribble would have to inform the C compiler
about which lines in the C source refer to which lines in the Scribble source. This is what CWEB does. (Credits go to the C compiler for predicting the usefulness of such extensions.)
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 465 |
Nodes: | 16 (2 / 14) |
Uptime: | 22:51:11 |
Calls: | 9,396 |
Calls today: | 5 |
Files: | 13,567 |
Messages: | 6,097,257 |