LoginSignup
9
1

More than 3 years have passed since last update.

久しぶりなLisp

Last updated at Posted at 2020-12-26

Lisp引退おじさん

引退したはずだったのですが、今年の後半になってGPU、CUDAのインストールが最新のMINTでうまくいかずにDeep-Learning実装を中断、Lisp&Prologを弄ってました。弄っているとはまりますね。Lispカレンダー、空間がたっぷりあったので、ご迷惑にもならないだろうと思い、しゃしゃり出ることとしました。お許しくださいませ。

三つ子の魂百まで

モダンなコンピューター言語でおもしろそうなのがどんどん登場してきます。すごいですねえ。でも、私の場合、結局、Lisp&Prologを弄ってるのが一番に落ち着きますし、楽しいみたいです。おっさんですね。ロックバンドといったらパープルにツェッペリンという感覚が今でも染みついてます。久しぶりに弾いたエレキもだいぶ様になってきました。コロナが収まったらライブハウスデビューしようかしらん。オッサンの夢は膨らみます。
Screenshot at 2020-12-26 17-48-50.png
すみません。本文とは関係ありません。
https://www.youtube.com/watch?v=qrwkccaLuN8&list=RDqrwkccaLuN8&start_radio=1

フォーマッタ

なんでもござれであらゆるツールが揃っているCommon-Lispと違って、ISLispにはほぼ何もありません。そこが楽しいのですね。その昔、月刊I/Oや月刊アスキーを楽しみに、ささやかなハックをしていた頃を思い出します。ツールがないなら自分で作っちゃう、オッサン、今でもこのノリで生きてます。マイクロソフトのVS-CODEに乗り換えてとてもご機嫌なのですが、Lisp用のフォーマッタがうまくいきません。そしてこれはCommong-Lisp用です。うん、これはゲリラ的ハックで自作するチャンスですよ。

即席ラーメンならぬ即席Lisp

思い立ったが吉日です。半日ほど、あれこれと書いていたら何となくそれっぽくなってきました。参考にしたのは竹内先生の「初めての人のためのLISP」252ページです。お供あり、お供なしなんてのがあったのですね。この本、若いころに相当に入れ込んで読んだはずなのですが、気が付きませんでした。

今のところこんな感じです。細部はまだまだこれから。年末年始のミニプロジェクトによさそうです。
Screenshot at 2020-12-26 17-43-27.png

仕組みは?

S式を読み込むときに数やシンボルを文字列として取り込んでいます。自然数でも#Xface #B010101 なんてのがあります。S式で読み込んじゃうとアラビア数字になってしまい、オリジナルのコードを損ないます。シンボルもS式で読み込んじゃうと大文字になってしまい扱いが面倒です。

(cons 1 2) なら ("cons" "1" "2") と読み込んでから清書の処理をしています。コードgithubに置いてあります。tests/pretty.lspといのが開発中のものです。

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1