カスタム Lisp REPL に対して:ネイティブ REPL と実用的なツールを受け入れる

2025-08-20

著者は、カスタム Lisp REPL(CIEL など)を批判し、それらがネイティブ REPL の強力な機能とカスタマイズ性を犠牲にしていると主張しています。具体的には、ネイティブ REPL コマンド、実装デバッガー、実装 API を使用したカスタマイズ機能などが挙げられます。この記事では、Trivial Toplevel ライブラリや rlwrap などのツールを使用してネイティブ REPL を拡張する方法を詳しく説明しており、カスタムプロンプト、コマンド、リーダーマクロ、ASDF を使用した依存関係管理などをカバーしています。著者は、"オールインワン" のカスタム REPL に頼るのではなく、ネイティブ REPL と実用的なツールを組み合わせて、効率的でパーソナライズされた Lisp 開発環境を構築することを推奨しています。

続きを読む
開発

ed(1)を静的サイトジェネレーターとして使う:変わり種の試み

2025-05-31

Artyom Bologov氏が、古いテキストエディタed(1)を使って静的サイトを構築した変わった経験を紹介しています。LispやCプリプロセッサなど様々な方法を試したのち、最終的にed(1)を静的サイトジェネレーターとして採用しました。ed(1)にはファイルインクルードなどの機能がないという制約がありますが、柔軟性があり、独自の構文を使用したり、古いプリプロセッサ形式を処理したりできます。彼は、前処理とフォーマット変換にed(1)スクリプトを使用しており、複数の出力形式(txt、gmi、7、texなど)をサポートしています。ベストプラクティスではありませんが、この記事はed(1)の意外な可能性と、著者独自のテキスト処理へのアプローチを示しています。

続きを読む
開発

Lispインデントの醜い真実

2025-01-19

Lispプログラマは長年、最適なインデントスタイルについて議論してきました。この記事では、インデントなし、関数アラインメントインデント、スペースフィリングインデント、そして著者の物議を醸す「シックス」マクロインデントなど、さまざまなアプローチを探求しています。関数アラインメントインデントは、ネストが深い場合に扱いにくくなり、スペースフィリングインデントは効率的ですが、極端なケースでは不十分です。著者は、従来の方法ではないものの、深くネストされたコードで可読性を維持し、ほとんどのインデントツールと連携する「シックス」マクロスタイルを推奨しています。読者は自分の好みのスタイルを共有するよう促されています。

続きを読む