zick Profile picture
((LAMBDA (LAMBDA) `((LAMBDA (LAMBDA) ,LAMBDA) ',LAMBDA)) '`((LAMBDA (LAMBDA) ,LAMBDA) ',LAMBDA))

Dec 7, 2021, 531 tweets

bitが全巻電子化されたので、全部読みたいけど時間がかかりすぎるから、とりあえずLISPの記事だけ読むことにした。具体的には g000001.cddddr.org/3847385058 ここに書いてる記事。

1970年12月号『記号処理言語(2) LISP 』読んだ。LISPの紹介と簡単な記号微分。定番な内容に感じる。

これは car[((A B) C)] の誤り?

「S式になったプログラムはひじょうに見にくい」

「数を許しているのであるから,算術演算ができなくてはおもしろくない」

「人間どうしの情報交換用にはふつうM言語を使う」

意味のあるところで改行しているM式と無改行のS式を比較するのは若干卑怯な気がした(小並感)

1971年10月号『コンパイラのうちとそと(10) LISPのばあい』読んだ。LISPの紹介とインタプリタの簡単な説明。コンパイラの説明はほとんどない。

世の中には2種類のデータ構造がある。

AN記法ってなんや

この記事、ドット対の扱いが変。

本当?

1974年1月号『LISP 入門① マッカーシーの条件式とM式』読んだ。最終的にはFORTRANでLISPを実装するらしいが、この回はLISPの簡単な紹介。

「廃品回収」

どちらかというとIFについて述べてほしかった。

「”かっこ”が多くてけっして見やすくはない」

1974年2月号『LISP 入門② 関数の帰納的定義』読んだ。再帰の話。

「エバる」

謎の "nil 3" に心躍ったが、単に nil3 の誤字っぽい。

「call by address」

「関数名と変数名は一致させないほうがよい」

FORTRANの +0 だ。

bit 1974年3月号『LISP 入門③ 帰納的定義のFORTRAN処理』読んだ。FORTRANを再帰呼び出しできるように拡張したFORTRAN*を作る話。スタックとGOTOを使った(通常の)FORTRANに変換する。LISPはほとんど出てこない。

「穴倉記録」「棚上げ」「棚おろし」

うおォン 俺はまるで人間プリプロセッサだ

これ読むのすごい大変だった

bit 1974年4月号『LISP 入門④ LISPのデータ言語S式』読んだ。計算機でS式を表現する話。いよいよLISPを実装するという感じになってきた。

こーゆー図好き。

bit 1974年5月号『LISP 入門⑤ MS変換, LISPの万能関数』読んだ。M式をS式に変換する方法と万能関数の作り方。前回のような低レイヤーの話はない。

こんな使い分けもあるのか。

defineやtraceを必要なくなったら捨ててしまう手法、RingLisp的で好き。

S式を入力する理由は小文字が入力できないから

「M式のほうがS式より書きやすいと一般にみなされている」

「Lispのプログラムになれた人のなかにはS式のほうがわかりやすいという人もいる」

「evalquoteってevalじゃなくてapplyやんけ問題」に対する前向きな解釈

カードとラインプリンタというのが時代を感じる

bit 1974年6月号『LISP 入門⑥ Lispの標準関数』読んだ。HLISPの紹介。といっても各関数の説明がメインで、どのあたりがHなのかはあまり解説がない。

LISP 1.5には h から始まる関数はない。豆知識だ。

fexprでapply使ってるの始めてみたような気がする。fexprの説明自体めったに見ないけど。

りぷれいすえー、りぷれいすでー

bit 1974年7月号『LISP 入門⑦ 連想リストと属性リスト 』読んだ。変数がどのようにルックアップされるかという話。

BCPという言葉、初めて見た。

ややこしい時代

fexprはapplyよりeval使ってるほうが落ち着く。単に私が大昔にfexprを書いたときにそうしたからだけど。

これはちょっと

bit 1974年7月号『LISPプログラムの編集に有効なLISP-EDITORの原理』読んだ。LISPインタプリタと一体化したエディタの話。viのようなスクリーンエディタではなく、edのようなラインエディタに近い。ただし行単位ではなくS式単位で編集する。

かっこいい

「いちいちカードを読み込ませたり,入れ替えたりしていたのでは,あまりにも効率が悪い」

無改行のS式を載せて読みにくいといってる時代にこれはなかなか

リリカルLispみたいに1行しか入力できない環境ではこういうのもいいかもしれない。コマンドがS式だったりS式じゃなかったりするのが少し気になるけど。

「このUndoも,普通のEDITORにない機能である」

bit 1974年8月号『LISP 入門⑧ 関数引数の処理, 基本集合演算の高速化』読んだ。関数引数における自由変数の話。このLISPではC++のようにキャプチャする変数を明記する手法をとってた。

だいたいC++のコピーキャプチャ。

flagとremflagを使ったプログラムを始めてみた気がするけど、入門書に書いてないだけで広く使われてたの?

bit 1974年9月号『LISP 入門⑨ HLISP』読んだ。HLISPのHなところの紹介。これを使いこなすのは慣れが必要そう。

なんでcarがvalueでcdrがkeyなんだろう。普通は逆じゃない?

pp!そういうのもあるのか

bit 1974年10月号『LISP 入門⑩ 連想計算機能とHLISP』読んだ。連想計算(メモ化)とHLISPのHの詳細。

「大廃品回収サブルーチン」

人生で一度くらいカードを使ってプログラムを動かしてみたい。

「FORTRANコードを人手によって機械語に落とすと,記憶所要量は半減し,速度も倍増」

bit 1974年11月号『LISP 入門⑪ ガーベッジ・コレクタ廃品回収』読んだ。ごみ集めの話。

かしこい

わかる

「ガーベッジ・コレクタの時間が50%を超える場合には,Lispは記号処理システムではなくむしろ廃品回収システムになってしまう」

採用しなかったアルゴリズムの方が面白いと主張するの好き。

「即時回収法」

bit 1974年12月号『LISP 入門⑫ 仮想的記憶と連想的処理の効用 』読んだ。自分で仮想記憶を管理する話。空間的局所性が低いのでページ単位ではなくオブジェクト単位で管理する。

倉出し表ってなんや

「コアの記憶容量の数倍にも及ぶ関数の定義式を含むLispプログラムが実行可能」

え?

goの引数を評価するとかLISP Iに先祖返りした感じが。 unquote[x]=x も味わい深い。

bit 1975年1月号『LISP 入門⑬ Backtrack法とLisp』読んだ。バックトラックの説明とHLISPのHな性質を利用した高速化の話。

CAR/CDRにvalue/keyの順に入れる理由ってもしかして、図示したときにvalueの方が短くkeyの方が長くなりがちだから?

「すきすきの値」

bit 1975年02月号『LISP 入門(完) Lispの入出力プログラム』読んだ。S式のreaderとprinterの話。これをしっかり書いてる記事は割と珍しい気もする。

なぜかよめる

スタックからpopした値はLARGに置かれるので、スタックにリストに入れたい要素をpushしてからCONSを繰り返し呼ぶとリストが作られるのはなかなか気持ちいい。

逆転ポインタ法どこにでも出てくるな。

ごみ集め(の一部)やreader、printerあたりはFORTRANのプログラムが載ってるのに、肝心のevalはFORTRANのプログラムが最後まで載ってないのは正直笑った。

bit 1975年3月号『LISPコンテスト』読んだ。LISP処理系の性能比較。でもそれぞれ動かす計算機が違うので純粋に処理系の性能を比較するのは難しい。

bit 1975年10月号『マッカーシは語る─LISPをめぐって』読んだ。John McCarthyへのインタビュー。16歳で大学に入って23歳でPh.D.をとった恐ろしい人だった。

マッカーシが体育のせいで休学する回

「何も面白くありませんでした」

人工知能

「これがMIT人工知能グループの始まりです」

「だれ一人コンパイラの作り方を知っている人間がいなかったので,そううまく進みませんでした。そのかわり,手でコンパイルして,アセンブリ言語にしました」

「インタプリタがいったん動きはじめますと,みなそれに満足してしまって,コンパイラのことは放りだしてしまいました」

「口頭で発音できることがわかりました」

bit 1975年11月号『マッカーシは語る─新計算機をめぐって』読んだ。タイトルにLISPとついてないからリストに載ってないけど前の記事の続き。

自然言語処理

連想記憶

安い端末

「どのみち平均的なプログラマは雇いません」

京都

bit 1978年7月号『Lisp手習(1) Lisp君登場』読んだ。なんですか、これ

ここまでの記事ではずっと帰納的という言葉が使われてきたけど、ここではじめて再帰的という言葉が出てきた。

bit 1978年8月号『Lisp手習(2) 一度,もう一度,さらにもう一度,さらにさらにもう一度,…』読んだ。離数譜、一体何者なんだ...

読み方

bit 1978年9月号『Lisp手習(3) 怪力CONS』読んだ。「怪力」に対する説明がなかった気がする。

T    T

「いらいら括弧」

戒律

「プディングの味は食べてみればわかります」

「かの偉大なるCONS」

bit 1978年10月号『Lisp手習(4) 続怪力CONS』読んだ。やっぱり怪力に対する説明がない。

いちばん大事

きびしい

bit 1978年06月号『プログラム言語Pascal─レコードの可変部とLispの処理系(6)』読んだ。可変長のレコードを使ってLISPを表現する話。

Pascalこんなことできたのか。

「Pascalでは,レコードやポインタの扱いが一番面白い」「具体的な例として,PascalでLispの処理系を作ってみよう」

FORTRANと違って普通に読めるぞ

「ゴミ集め」

LISP入門より丁寧に書いてる気が

evalを書くのではなく直接LISPの関数を呼ぶ。

「Lispをあまりよく知らない読者にはやや不適切な例題だったかもしれない」

bit 1978年11月号『Lispマシン製作奮戦記(1)』読んだ。Lispマシンを作る話。秋葉原に色々買い物に行ったり手作り感がすごい。

忍耐力がいりそう

「さるえらい先生」

「一時期おまもりがはいっていた」

PROMと饅頭

つらい

bit 1978年12月号『Lispマシン製作奮戦記(2)』読んだ。前編がハードウェアよりの話だったのに対して後編はソフトウェアよりの話。

「作るのではなく動かすことが目的」

Lispを動かしたい→Lisp専用マシンを作る

「学校に8泊」

「デバッグはお茶を飲んでから」

「カッコカウントルーチン」

アッハイ

「夢のポータブルLispマシン予想図」

bit 1978年12月号『Lisp手習(6) 章上復有章(マルチの章)』読んだ。「章上復有章」とはなにか調べてみたけど「山上復有山」という言葉があるっぽい。

戒律

bit 1978年12月号『Lispコンテスト』読んだ。Lisp処理系の性能を比較するLispコンテスト再び。

「一度Lispの味を覚えると,人はLispフィーバーにかかる」

「怨みを晴らさでかというLisper」

これは興味深い。

LISP入門で、LISPは空間的局所性が低いから普通の仮想記憶ではあまりうまくいかないという話があったけど、その実例なのか?

bit 1979年02月号『Lisp手習(7) あっちもこっちもさあ大変』読んだ。carとcdrの両方をたどる複雑な再帰について。

bit 1979年03月号『Lisp手習(8) 仲間(集合)と間柄(関係)』集合を扱う関数について。昔の本ってとにかく数学をやらそうとする。

bit 1979年04月号『Lisp手習(完) ひとの手を借り,左うちわで』読んだ。補助関数を定義して複雑な関数を簡潔に書く話。

離数譜......それはLispに深い因縁を持つものたちだった。

「残念ながら全部アメリカ製です」

bit 1979年12月号『FLATSマシンの基本構想 』読んだ。Fortran and Lisp machine with Associative features for Tuples and Sets。

「存在意義はまずあるまい」

計算機を作った経験が禍して

「7種類の基本演算」

この手のしっかりとした解説は少ない気がする。

「完全に破壊されてしまう」

bit 1980年10月号『ナノピコ教室─出題(LISPとパラドックス演算子)』読んだ。不動点演算子の話。LISPとλ計算の食い違いと言ってるし、多分YコンビネータじゃなくてZコンビネータを使えということだと思う。

bit 1980年12月号『APPLE LISP』読んだ。APPLE IIで動くLISPを作った話。

「小さな仕事をするためのLispぐらいは自宅に置いておきたかった」

ディスクとカセット

S式版とM式版があり、evalとevalquoteの両方が使える。

「あまり利用しないほうがよいでしょう」

「マイコン用の言語である証拠」

WHILE!そういうのもあるのか

「システムが薄い空気で苦しんであえいでいる」

S式とM式を混ぜたものを書ける。

ハッシュ表と分岐ベクトルの図好き。

「アセンブラを逆アセンブルして虫を取ることにしました」

「システムは,入出力の部分が完成すれば,作業の半分以上が終わったような気分になります」

bit 1980年12月号『LISP昨今─1980年LISPコンファレンスから』読んだ。LISPの歴史とか。

東ドイツ

「まるで泥の玉のように,いろいろなアイディアをくっつけてもよい」

「FORTRANよりも優れたコード生成能力をもつLISPシステムが作られるようになりました」

国内でのLISP開発が活発になるのは1974年以後

「メモリを借りてくる」

bit 1980年10月号『ナノピコ教室─出題(LISP Poetry)』読んだ。これは......

bit 1981年01月号『ナノピコ教室─解答(LISPとパラドックス演算子)』読んだ。Zコンビネータの話かと思いきや、バッククォートの話だった。

解答者の名前に見覚えが

bit 1981年03月号『I ♥ COMPUTER─LISPマシンのアーキテクチャ(9)』読んだ。LISPマシンの話。

「姑息な手段」

ボブロウ・スタック!そういうのもあるのか

Schemeの名前が初めて出てきた気がする。

「LISPマシン社はSymbolics社のただ一つの競争会社」

bit 1981年03月号『ナノピコ教室─解答(Lisp Poetry)』読んだ。「いかにもLISPらしいLISPプログラム」

"「Lisp気狂い」と称される人達からの応募作品がなかった"

私は吸血鬼関数が一番好きです。

「Lispの歌」

bit 1982年03月号『よい子のはいぱーりすぷ』読んだ。学生のときにオリジナル版とbit版の両方を読んだことがあるので飛ばそうかと思ったけど、面白くてつい読み直してしまった。

「carはなぜ左なんだろう」

これ

対話形式の説明は嫌われがちだけど私は結構好き。

bit 1982年08月号『LISPとLISPマシン:その現状と展望』読んだ。タイトル通り。

「スパゲッティ・スタック」

bit 1982年11月号『ACMシンポジウム「LISPと関数的プログラミング」に出席して 』読んだ。タイトル通り。

名前だけまれに聞く言語がいっぱい。

Common LISP登場

豪華メンバー

bit 1983年01月号『UNIXシステム入門(16)─UNIXのFranz Lisp』読んだ。Franz Lispの紹介。

「確かなのは,Franzが開発者の名前ではないことである」

スーパーカッコ

doの括弧が少ない

「evalは本当に大きな顔をしてエバってよい関数」

リリカル

bit 1983年01月号『エディタとテキスト処理(10)─構造エディタ(1)─Lispの場合』読んだ。1974年7月号の『LISPプログラムの編集に有効なLISP-EDITORの原理』みたいな話。

「Lispエディタといえば誰でもInterLispを連想する」

「Stallmanが文句をつけ」

「反構造エディタ派」

「眼によくない」

bit 1983年06月号『Historical Memorandum:LISP』読んだ。LISPの1ページ紹介

bit 1983年06月号『Small Prologインタプリタ移植のすすめ』読んだ。タイトルにLISPとついてないからリストに載ってないけど、Lispで書かれたPrologインタプリタのソースコードが丸々載ってる。

「3種類のLispへの移植」

caddddddr

bit 1983年10月号『考える道具としてのLISP入門─考えるための道具としてのコンピュータ(1)』読んだ。認知心理学のためにLISPを使う連載。第一回は大雑把に何をやりたいかの紹介。

これはS式使いたくなるやつだ。

bit 1983年11月号『考える道具としてのLISP入門─LISPの基本的な使い方(2)』読んだ。LISPの使い方。色々詰め込んでる。

さりげないネタバレ

bit 1983年12月号『考える道具としてのLISP入門─ソフトウェア・ツールズの使い方(3)』読んだ。「プリティプリンタは便利です。だから実装します」「関数定義を変更できると便利です。だからエディタを実装します」といった感じの恐ろしい回だった。

本連載を読んだだけでは理解できないけど、bitの過去のLISP記事、特に1980年12月号『APPLE LISP』、1974年7月号『LISPプログラムの編集に有効なLISP-EDITORの原理』、1983年01月号『エディタとテキスト処理(10)─構造エディタ(1)─Lispの場合』あたりを読むと理解できるのが感慨深い。

全部自分で作るってなかなかの狂気だと思う。

bit 1984年01月号『考える道具としてのLISP入門─LISPの基本関数(4)』読んだ。基本的な関数の紹介。APPLE LISPには標準でASSOCがない(代わりにSASSOCがある)とか豆知識も載ってる。

bit 1984年02月号『考える道具としてのLISP入門─ASSOCを使った検索関数(5)』読んだ。データをS式で表現して検索可能にする話。入れ子データの扱いとか。

これはさすがに読みづらい。多分書くのはそんなに難しくないんだけど。

『考える道具としてのLISP入門─パーソナルユースを目的とした情報検索システム(6)』読んだ。日本語よりS式のほうが多い。この連載、スパルタがすぎる。

「いちいちかっこを打つのは面倒」

bit 1984年04月号『考える道具としてのLISP入門(7)─ソフトウェア・ツールズ(2)』読んだ。LISPはFORTRANやCOBOLと比較すると処理が複数の関数に分かれてて動作を追いにくいからなんとかしたい、という動機はわかるけど、だからってコードを解析するコードを書く「入門」とは。

関数のcall graphが見れると便利なのはわかるけど、これを実装するのはなかなか

「だれも教えてくれないし,どこにも書かれていない」

こんな情報が見れたら便利だけど、実装するにはcode walkする必要があるのでなかなか

なんの説明もなくDFが出てきて草。かすれた印刷だとDEとDFが見分けにくい。

bit 1984年05月号『考える道具としてLISP入門─PARSER MicroELI(8)』読んだ。英文の意味を解析する話。やっと本題に入ったという感じ。相変わらずコードの分量が多い。

辞書をDSLで定義して、そのなかに一部LISPコードが混ざるけど、それが(ダイナミックスコープの)ローカル変数を参照するというのはヤバい。

なんで2回エバるんだろうとおもったけど、FEXPRなので、実質1回だった。単にalistを取ってくるテクニックっぽい。

これは何がしたいのか分からなかった。読む限りDFの定義そのものに見えるけど、どうして再定義する必要があるのかわからない。

bit 1984年06月号『考える道具としてのLISP入門─PARSER JUMP(9)』読んだ。今度は日本語の意味を解析する話。

うーん、これは日本語。

単語の区切りが * なの趣がある。

bit 1984年07月号『考える道具としてのLISP入門─SCRIPT APPLIER MicroSAM(10)』読んだ。常識として文から省略された部分を補う話。これはちょっと無理があるのではと思った。

こんなデータを人間が事前に準備するのはあまり現実的じゃない気が。

bit 1984年08月号『考える道具としてのLISP入門─QUESTION ANSWERER MicroQA(11) 』読んだ。これまで解析した文の意味を使って、疑問文に対する答を求める話。

bit 1984年09月号『考える道具としてのLISP入門─文章中の意図の推論(12)』読んだ。「目的-手段」のペアをデータとして与えて、文章の意図を推論する話。

おもしろページレイアウト

bit 1984年10月号『LISPコンファレンスに出席して』読んだ。タイトル通り。

「あまり話をしていてもおもしろくはなかった」

「Spice Lisp by 京大」とはなんぞやと思って調べてみたら、どうやら誤解らしい g000001.cddddr.org/3663326108

bit 1984年10月号『考える道具としてのLISP入門(完)─日本語GENERATOR MicroJAG 』読んだ。意味の内部表現(CD表現)から日本語を作る話。これにより、日本語の文を入力し日本語で質問をすると日本語で返答が帰ってくるようになる。

うーん、これは日本語。

趣深い

bit 1985年01月号『LispマシンSYNAPSE 』読んだ。といっても学生の頃にも読んだことがあるけど。

"「64Kのメモリじゃ何もできないよ」などという贅沢な会話も憲兵隊をきにせずできる"

要するに末尾再帰の最適化かなとおもって文献を見てみたら、末尾位置のSUBR呼出の最後の引数でも最適化をすると書いてあり感心した。

8ビットも余ってるのが羨ましいと学生の時も思った。

「Lispの良し悪しはGCで決まる」

リリカルLispの起動時のメッセージの元ネタ。

「ソフトで片がつかなければハードで」

「ナイフとフォークよりは,ハンダごてのほうがいまく握れる」

「夜も眠らずにプログラムやハンダを相手に格闘」

bit 1985年03月号『パーソナル数式処理システム─Lisp 68Kの開発とREDUCEの移植』読んだ。マイクロコンピュータでREDUCEを動かす話。

「性能を最大限に引き出すために,Lispはアセンブラで記述」

「1Mバイト以上の線形空間が自由に使えると聞くと,筆者のようなLisp大好き人間はたまらなくうれしくなってくる」

「わずか23ページであるから,最初から戦闘意欲を失うようなことはない」

「並みいる大先生方の鋭い指摘を受け,どうもうまくできたLispというのはそうなっていないらしいということに気がついた」

「明らかに良くなるとわかっていることをやらないのはエンジニアの恥である」

学部生のころはこういった、オブジェクトをどう配置するかとか好きで色々試したけど、年齢とともにだんだん面倒になっていった。

bit 1985年04月号『Common Lisp 入門(1)』読んだ。Common Lispの色々な機能の紹介。

「家柄がいいためにアイビー・リーグのハーバード大学に入学させられた」

「Lispはもはやインタプリタ言語ではないのである.えっと,驚く読者がいたら,完全に時代に遅れてしまったと自認すべき」

「凡人には恐ろしくてできるものではない」

downward fungar, upward funarg

「このままではひどすぎる」

Franz Lisp、そんなことできたのか

&quote!そういうのもあるのか

「PL/Iのような単なる妥協の産物ではないようにしようとする反骨心」

bit 1985年05月号『Common Lisp 入門(2) 』読んだ。前回の続き。

「筆者はCommon Lispの太鼓もちというわけではないのだから,Common Lispのいいところばかりを書くつもりはない」

「5月5日だけでなく3月3日も休みにしろというのと同じくらい,正当な主張」

知らなかった

PrologがLispにまさっている点

「多値関数をあまり使って欲しくなかったからだろうか」

「いまはなきputpropのために飲みかそうではないか」

遅い

「タイプのない言語というものは,数学的にいくら美しくても,そのままでは,実際のアプリケーションに堪えることができない」

「確かに美しい.しかし,整数の範囲ではできないが,有理数の範囲でならできるという計算で,浮動小数点数よりも精度を必要とするものが実際にあるのだろうか」

「わざわざレコードが必要なのかと不審に思う読者がいたら,首をくくってもらいたい」

bit 1985年05月号『パーソナルLispマシン アーキテクチャとプログラミング環境』読んだ。Lispマシンの話。

スパゲッティ・スタック

コルーチン

bit 1985年06月号『マイコン・トピックス GC LISP』読んだ。随筆。LISPの話はあまり出てこない。

時代背景がよく分からない

「viはどうですか」「regular expressionを教えるにはedのほうが便利」

bit 1985年06月号『MS-DOSプログラミング入門 LOGOとLISP(12)』読んだ。LOGOの話。

「別名ベビーLISP」

「見事な図形は確かに手軽に作れるが,so what?」

bit 1985年06月号『Common Lisp 入門(3)』読んだ。様々なCommon Lispシステムとそれに携わる人達の紹介。

著作権料

「我が国の実状がみじめに思えてならない」

これすき

これはひどい

bit 1985年06月号『続・パーソナル数式処理システム Lisp コンパイラと REDUCE 実行効率の改善』読んだ。1985年03月号のLispにコンパイラをつけた話。

bit 1985年08月号『Common Lispのデータ型とその周辺─解説Common Lisp(1)』読んだ。CLtLを翻訳した際にGuy Steeleに送った質問とその回答。

「theはあまり評判のよいものではない」

bit 1985年09月号『解説Common Lisp(2)─データ型とその周辺(続) 』読んだ。Common Lispの型を中心としたいろいろな話。

「本来の数学的な数体系を忘れると一人前」

bit 1985年10月号『解説Common Lisp(3)─データ型とその周辺(続々) 』読んだ。前回の続き。

セミコロンの話知らなかった。

cdrコーディングすればベクタとリストの処理が共通化できるという話、rplacaしなければできそうな気もするけど、実際にやったマシンってあるんだろうか。

「コンスという用語をドット対に対して用いることは,あよそ妥協の産物」

InterLispではatomは配列に対してnilを返してたのか。ある意味そっちのほうが自然だと思うけど。

TNBIND!そういうのもあるのか

bit 1985年11月号『Lispマシンのオブジェクト指向プログラミング 』読んだ。Flavorの話。

オブジェクト指向という考え方の根本は

Lispマシンのシステムのなかで,オブジェクト指向プログラムの恩恵を受けているのは

「必要に迫られ,無理に付加した」

bit 1985年12月号『第3回Lispコンテストと第1回Prologコンテスト顛末記』読んだ。Lisp処理系の性能を比較するLispコンテスト再び。今回はPrologコンテストも。

最初に提出した人が一等賞

LispコンテストではPrologインタプリタが課題にあり、PrologコンテストではLispインタプリタが課題にあるの好き。

bit 1985年12月号『解説Common Lisp(完) Common Lispの特徴的な構造』読んだ。Common Lispの色々な話。

「それはあまりプログラムを作ったことのない人ではないか」

ここまで詳細な説明は初めて見た。参考になる。

bit 1986年09月号『BASICで書いたLISP(1)』読んだ。BASICでごみ集めなしのpure-Lispを書く話。全ソースコードが載っており短くて非常に読みやすい。アトムに関して30000はnilで30001はtで30002はquoteで......と暗記しないといけないところを除くと非常に読みやすい。

移植性

静岡大学

こーゆーシンプルなやつ嫌いじゃない

リストのreadを再帰的に書くと、末尾から順にコンスできてシンプルに書けるやつ嫌いじゃない

ここすき

evlisしてapplyしたあとに使用したコンスをまとめて捨てるけど、保護すべきコンスがある場合のみ残す仕組み嫌いじゃない。

基本的にコンスを捨てていくけど、defunされたときのみコンスを残す仕組み、関西Lispユーザ会でRing Lispの話をしたときに出たアイディアと基本的に同じ気がする。 docs.google.com/presentation/d…

bit 1986年09月号『サンマルコLISP探検隊』読んだ。GCLispについてくるチュートリアルの話。

いろんな記事でちょくちょくコルーチンが出てくるけど、この当時流行ってたんだろうか。

探検隊

CTRL-SHIFT

bit 1986年09月号『Common Lispアラカルト(1)─いったい今,何が起こっているのか? 』読んだ。Common Lispの最近の動向。

Guy Steele曰く

bit 1986年10月号『Common Lispアラカルト(2)クロージャ』読んだ。lexical closureの実現方法について。クロージャを作る関数のコンパイル結果を載せてあとは読者に任せたというスタイルのやべー記事。

「最初から設計をやる直すことになる」

問題のレベル高くないですか?

bit 1986年11月号『Common Lispアラカルト(3)Eulisp』読んだ。ヨーロッパで作られてるEulispについて。

「優リスプ」

こわい

bit 1986年12月号『Common Lispアラカルト(4)VAX LISP』読んだ。DECで作ってるVAX LISPについて。

Cで書かれたルーチンを呼ぶ方法。この手の話、大事だと思うけどあまり書かれていない。過去のbitで説明があったのはAPPLE LISPのCALLくらい?

まるでJavaScript

「LISPがあれば何とかなりますし,何でもできると信じています.私もLISP教の信者であるつもりですから」「一度,ゲップがでるくらいLISPでプログラミングしてみたい」

bit 1987年01月号『Common Lispアラカルト(5)─CommonLoops』読んだ。主にマルチメソッドの話。

分かりやすい

bit 1987年02月号『Common Lisp アラカルト(6)─Scheme 』読んだ。Common Lispの連載だけどSchemeの紹介。

なんかこの時代はSchemeの名前が出てくると必ずSchemeチップの話も出てくる気がする。

bit 1987年03月号『Common Lispアラカルト(7)─ANSI X3J13』読んだ。Common Lispの標準化の話。

Lispの標準を決めるのではなくCommon Lispの標準を決める

「日本がなんとかしてくれ」

bit 1986年10月号『BASICで書いたLISP(2)』読んだ。前回のインタプリタに色々追加する話。

興味深い。ここでの「deep-binding」は(大域的な)関数をシンボルのスロットに入れて、そっちを先に探し、なければa-リスト(という名のスタック)を探す方式。

bit 1987年04月号『Common Lispアラカルト(8) Symbolics Common Lisp』読んだ。Symbolicsの話。

嫌な話

SymbolicsでLisp以外の言語を書くの楽しそう。

楽しそう

bit 1987年05月号『Common Lispアラカルト─日本語化(9)』読んだ。日本語を扱う方法を検討する話。

「中途半端であることは許されず,徹底的に行う必要がある」

「ほかのプログラミング言語では文字は1バイトで表すことがほぼ前提になっている」

「16ビットあればほとんどの標準文字を取り込むことができる」

bit 1987年06月号『7bits インスタント・コンパイラ』読んだ。手抜きなコンパイラを作る話。構文をS式ベースにしたら (read) だけでパースが終わるとかそういうの。

「その昔は,Lispを使うというだけで,世間からつまはじきにされたものである」

「Lispプログラマ達が祈りを込めて打ち込んだプログラムは,たいてい見るも無残な姿に改ざんされたものだった」

「viなどの邪悪なエディタ」

「BEGINとENDの塊みたいなプログラムのどこがいいのだろう」

「正統派コンパイラ教徒の陰謀」

「コンパイラというと機械語(か悪くてもアセンブラ)のコードを出すのが当然と思っている人がいるかもしれないが,それは思い違いというものである」

bit 1987年06月号『Common Lispアラカルト(10)パロアルト・ミーティング』読んだ。標準化の話。

「何回も括弧の対応をまちがえたりし,出席者の失笑をかい」

「フランスにもフランスのLisp文化がある」

bit 1987年07月号『Common Lispアラカルト(11)オブジェクト指向の将来』読んだ。CLOSに関する議論。

bit 1987年07月号『CLOS:Common Lisp Object System』読んだ。CLOSの詳しめな解説。

「仕様書でわからないところはPCLで試してくれ」

bit 1987年09月号『Common Lispアラカルト(12)─Gold Hillよりのメッセージ①─Golden Common Lispプログラミング環境』読んだ。GCLispの紹介。

bit 1987年10月号『Common Lispアラカルト(13) Gold Hillよりのメッセージ(2)─GCLISPの他言語インタフェース』読んだ。GCLispから他の言語の関数を読んだりその逆をしたりといった話。

「既存のアプリケーションをLispで書き換える努力を要求しない」

LispからCの関数を呼び、そこからLispの関数を呼ぶサンプル

bit 1987年11月号『自然言語処理および画像処理とLispマシン』読んだ。Lispマシンの利用例。

スパゲッティーのようなもの

「大型計算機上のシステムのCPU時間の3分の2程度は,辞書規則などのアクセスとガーベジ・コレクションに消費されていた」

「処理時間(実時間)のかなりの部分がマシン相互の通信のために消費」

「コストと処理スピードには問題が多い」

bit 1987年11月号『Common Lisp アラカルト(14) 対談:Lisp マシンとパソコンの狭間で』読んだ。対談。

「ボストンのLispコミュニティは大変小さく,みんなお互いによく知っています」

タグフィールドはポインタの外

Prologで書かれたデバイスドライバ

bit 1987年12月号『Common Lispアラカルト─ケンブリッジ・ミーティング(完) 』読んだ。標準化の話。

LOOPマクロ

bit 1988年01月号『マルチパラダイム言語TAO(1)LispマシンELIS』読んだ。ELISの説明。

シンプル

「日比野の散歩事件」

「Lisp中毒者にとってはこういう表現のほうがずっと親しみやすく自然」

胃が痛む

bit 1988年02月号『マルチパラダイム言語TAO(2)TAOのデータ型』読んだ。データ型の話というよりELISの話。

「競馬で万馬券を当てた人間と同じ行動様式」

タグチェックとメモリ読み込みを並列に行い、さらに読み込みが終わるまでの間に別のことをすることで性能を改善

tarari

nilのcar/cdr

「どの程度趣味に走っているかを窺い知るためのいい例」

これすき

「昔から読みにくいと悪評の高いS式」

「Lispの話はやっぱりこうじゃなくちゃ」

bit 1988年03月号『マルチパラダイム言語TAO(3)インタプリタ,変数,ループ』読んだ。やっぱり低レベル寄りの話。

熱心なユーザ、熱心すぎない?

「当時はまるでPrologをやらざるもの非国民といった感じ」

bit 1988年04月号『マルチパラダイム言語TAO(4)─代入,関数,catch』読んだ。式の値を求めるついでに値の存在する場所をレジスタに残しておいて、それを代入に使うという仕組みが面白かった。

哲学

「マクロでごまかしてしまえ」

これ素朴なインタプリタを書くとき便利そう。実装もevlisとpairlisを合体させたようなものを作れば簡単そうだし。

えぇ......

bit 1988年05月号『マルチパラダイム言語TAO(5) オブジェクト指向(1)』読んだ。低レベルの話が少し減った気がする。

心が痛む

これはおもしろい

「Lispの意味を説明するのにフローチャートを使うのは見たことがない」

「はて面妖な」

「これが使われているプログラムは見たことがない」

bit 1988年06月号『マルチパラダイム言語TAO(6)─オブジェクト指向(2)』読んだ。Flavorsっぽい話。

オブジェクト指向の定義を述べよという問題を出したら

bit 1988年07月号『マルチパラダイム言語TAO(7)─論理型パラダイム(1)』読んだ。主にユニフィケーションの話とか。

「Lispの最大の魅力はS式」

「Prologのバックトラックは実用プログラムではほとんど使われない」

bit 1988年08月号『マルチパラダイム言語TAO(8) 論理型パラダイム(2)』読んだ。バックトラックとか。

「ちっともPrologらしくない」

「バックトラックは第五世代コンピュータプロジェクトの人たちでさえわななき恐れる恐ろしいもの」

うーん、これはProlog

なかなかおもしろい

bit 1988年09月号『マルチパラダイム言語TAO オブシェクト指向論理型プログラミング(9)』読んだ。オブジェクト指向と論理型を合体させる話。

搾れるところは搾り取る

うーん、これはオブジェクト指向

「研究者が独り言のようにブツブツいった一言がたちまちのうちに研究グループ全体に大きなインパクトを与える」

bit 1988年10月号『マルチパラダイム言語TAO(10)─並行プログラミング(1)』読んだ。タイトル通り。

好きな解釈

これ、資源を抱えたまま解放したらまずいのでは?

他人(プロセス)を勝手に眠らせてしまうの草

bit 1988年11月号『マルチパラダイム言語TAO(11)─並行プログラミング(2)』読んだ。前回の続き。

素人受けしにくい

「上げた拳がシステム自身にはね返ってしまう」

パラリッ

bit 1988年12月号『マルチパラダイム言語TAO(完)─Common Lispと番地型計算』読んだ。TAO上でCommon Lispを動かす話とか。

「遠吠えのような文句」

「知名度からいって論理術後のほうが勝ちか」

mutableな整数

Common Lispからの変換

「お休み前とかお茶の前にgcという強制ゴミ集め関数を呼んでおけば,対話中にゴミ集めでウッと止まる経験はまず皆無」

bit 1989年02月号『AAAI CLOSワークショップ』読んだ。ワークショップでの話。

「C言語にLispはとって代わられ,Lispは死ぬ」

「すべてが静的な手段でできるのならCommon LispもいらずCLOSもいらず,極言すればすべてはC++程度のものですむ」

忍術同好会

bit 1989年05月号『Common Lisp最前線─マクロがもたらすもの(1)』読んだ。マクロの話。

「あなたならどう思いますか?」

bit 1989年06月号『Common Lisp最前線─CLUE─Common Lispユーザ・インタフェース環境(2)』読んだ。CLUEというグラフィックライブラリの話。

CLXという生のXに近いライブラリの上にCLOSを多用したライブラリを作ったっぽい。

bit 1989年07月号『Common Lisp最前線─Lisp対C(3)』読んだ。実用プログラムから見たLispとCの比較。

「常識的には,生産性重視ならLisp,性能重視ならC」

bitの記事はLisp 1.5から一気にCommon Lispに移り変わり、この第2の時代の話が全然ないのが少々残念だった。

「Lispと言えば,個人かまたは限られたメンバのなかでデザインを楽しみながら物作りするといったイメージをもたれるが,現実にはもっと組織的な開発に利用されている」

「Lispの良さと言えば,一旦Lisp王国に入ればLisp領の関数や動作情報を対話で自由に利用できる環境の良さ,居心地の良さが評価されていたと思う.ところが」

Lispユーザが感じているLispでの生産性

「Lispがインタプリタで利用可能であり,修正〜実行のターンアラウンドが短いことがよく言われる.Cではコンパイルする手間の分だけ不利なのであるが,Cのコンパイルはさして時間がかからず実際にはあまり問題にならなかった」

bit 1989年08月号『Common Lisp最前線─Common Windows on X(4)』読んだ。WCWというグラフィックライブラリの話。CLUEと違ってCLOSよりもストリームを意識した作りっぽい。

bit 1989年09月号『Common Lisp最前線─漢字化の現状について(5)』読んだ。Common Lisp処理系の日本語サポートの状況の調査。

だれも16ビットより大きい文字をサポートしていないのである

bit 1989年10月号『Common Lisp最前線─日本語Common Windowsについて(6)』読んだ。日本語に対応したグラフィックライブラリNCWの話。

読んでて心が痛む

今やこのあたりはJavaでもできるしなぁ

bit 1989年11月号『Common Lisp最前線(完)─PCL abstract LAP 』読んだ。PCLのメソッド検索の仕組みと、そのための抽象アセンブリの話。

bit 1990年02月号『対談:オブジェクト指向新時代にのぞんで』読んだ。CLOSの話とか。

Bjarne、CLOSを語る

「Cは偉大な言語です」

bit 1990年07月号『単語帖─RFC,kerberes,3-LISP、項書換え系』読んだ。読んだというほどの分量でもないけど。

bit 1990年07月号『Europal'90に参加して─The First European Conference on the PracLical Application of Lisp』読んだ。カンファレンスの話。

「Lispやってる人はみんな同じようなことを考えているんだから,けんかせずに仲良くやろうよ」

CとLisp

「なんでそんな奴がこんなところに顔を出すんだ」

bit 1995年05月号『機能拡張言語としてのGNU Emacs Lisp─リチャード・ストールマン』読んだ。EmacsとかEmacs以外の話。

「名前の衝突を避けるには,名前にプレフィックスをつければ十分だ」

「こりゃ考えうる最悪のシステム設計だ」

「セミコロンをタイプするのは簡単なことじゃないか」

「なら戦わなくっちゃ!」

「数学の理論家がSchemeの標準化委員会の大勢を占めるようになった」

bit 1996年04月号『Scheme過去・現在・未来(前編)』読んだ。Schemeの歴史とか。

factorialのactor版がactorialなのは草

bit 1996年05月号『Scheme過去・現在・未来─後編』読んだ。未来の話はあまり出てこない。

「新しいコンティニュエーションを作りたくなければ,戻り番地をプッシュする必要はないのです」

「毎晩コンパイルしました.朝起きるといつもできていました.3ヶ月で100回くらいコンパイルしたことになります」

thunk

「主な新しい機能としては,ダイナミックバインディングを追加したことがあります」

「1週間に10あまりの異なるインタプリタを書きました」

bit 1997年09月号『Emacs Lispで作る』読んだ。Emacs Lispで色々書けて便利だなぁという話。

bit 1998年03月号『進化的プログラミング言語Common Lisp(前編)ロボカップでの経験を交えて』読んだ。この記事、なんか色々と、

「Javaに代わる言語」

えぇ......

bit 1998年04月号『進化的プログラミング言語Common Lisp(後編)─その動的オブジェクト指向性とWebへのインパクト』読んだ。なんだか

うーん

bit 1999年02月号『JIS/ISO標準ISLISPによるLISP教育』読んだ。大学でISLISPを教えた話。

図1

関戸君

「EVALが極端に遅いLISP処理系がCommon Lispに多かった」

残念で断念

bit 1999年04月号『Lisp生誕40周年記念ユーザコンファレンス』読んだ。カンファレンスの話。

「Scheme屋さんはまだまだ元気だなあ」

「Lisp関係の人員を解雇したという悪いニュースが流れた」

「McCarthyはとなりのレストランで食事中なので,もう少し待ってほしい」

「Lispがこれから生き残るためには,もっとプログラム検証に使わないといけない」

"Who is working on that?" "No one"

「Lispの連中は相変わらずアホなことばっかりやっている」

「Javaの本当の欠点は,Lispを知っている人間にしか分からない」

「Lispなんて,今でも使っている人がいるの?」

bit 2000年05月号『やっぱり,Lispだね』読んだ。Lispおもしろ話。

Lispの誕生日

「Lispの雑草のような生命力の根源」

鶴の恩返し

bit 2000年09月号『JLUGM─日本Lispユーザ会議(1)全体報告』読んだ。日本Lispユーザ会議の話。見覚えのある名前がやたらと出てくる。

「朝9:40から夕方5:40までのハードなスケジュール」

「会議当日の朝,朝食を食べながら英語のPPTスライドを準備」

"竹内氏が「動く」とおっしゃるのだから動くのでしょう,きっと"

スクウェアがスクエニになった原因だよなぁ

bit 2000年10月号『JLUGM─日本Lispユーザ会議(2)Lisp応用事例:自動車衝突試験データベースシステムの構築』読んだ。Common Lispを使った実例。

「じつはこのときまで本物のLisperというものをこの目で見たことがなかった」

「実行は全部頭の中でやる」

「Lispで書いていました,というのがバレると相手の顔色がかなり変わったりする」

「ユーザ言語のために新規の文法を開発するのは本当に必要なことなのだろうか」

「Cしか知らないアルバイトの学生さんに,Fortranソースとそれをf2cにかけたCソース,それとCLtL2を1冊渡してCommon Lispに書き直してもらった」

bit 2000年11月号『JLUGM─日本Lispユーザ会議(3)次世代Web技術としての動的サーバ技術─マルチスレッドLispによる可能性』読んだ。Common Lispで色々作った話。

くぅ~疲れましたw これにて完読です!予想より早く1ヶ月ちょっとで終わりました。購入したbitは110冊くらい。値段にして2万2千円くらい。1冊あたりの値段が安くてよかった。

面白い記事はたくさんあったけど、一番気に入ったのは1986年09月号の『BASICで書いたLISP(1)』です。素朴だけど色々と工夫が凝らしてあるLISPインタプリタのソースコードがまるごと載ってます。読んでて楽しい。 amazon.co.jp/exec/obidos/AS…

追加で見つけたLISP関連の記事についてもこのスレッドに追加していこうと思う。

bit 1983年06月号『1981年度ACM学生論文コンクール受賞論文第一席 プログラムのテスト助手』読んだ。LISPでテストを書くための支援ツールの論文の和訳。

ここすき

ここすごいLISP的な感じがする。

やっぱり対話環境の手動テストからテストケースを生成して欲しいよね。

ここすき

bit 1982年05月号『Prolog入門(2)』読んだ。Portable PrologというLISPで書かれた150行ほどの小さなProlog処理系のソースコードがまるごと載っている。

bit 1983年06月号『Small Prologインタプリタ移植のすすめ』読んだ。LISPで書かれたProlog処理系のソースコードが丸々載ってる。Portable Prologより高性能多機能を目指している感じ。

ここだけ読むと圧倒的に優れているように見える。

この方式だとアリティが0の述語を定義できないので好みの問題だけではないと思う。コード的にも問答無用でcadrとってるし。

調べてみたところFranz Lispっぽい。本文でもFranz Lispでの実行例が載ってるし。defunとdefの両方を使っている理由はよくわからないけど。

これはちょっと

これは趣味の問題だけど、 !lisp! はちょっと見た目が強すぎる。あと、変数の名前をuniqueなものに書き換えてset (setqのquoteなし版) を使って値を入れたあとでevalを呼ぶという力技のような評価方法はちょっとおもしろい。

テールマージって言葉初めて聞いた。

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling