読者です 読者をやめる 読者になる 読者になる

レガシーコード生産ガイド

私に教えられることなら

継続できた…?

CommonLisp lisp 学習記録

「後回しにする」とか言っておいて、諦めが悪いのでずっと考えたり実用CommonLisp見てたら次のことに気づいた。

で、実装したらできた。

phaendal/a-piece-of-lisp at continuation · GitHub

> (defun fooo (x) (call/cc (lambda (escape) 1 2 3 (escape x) 4)))

FOOO 
> (fooo 5)

5 
> (define cont nil)

CONT 
> (+ 100 (call/cc (lambda (c) (set! cont c) 1)))

101 
> (cont 100)

200 
> (+ 10 (call/cc (lambda (c) (+ 1 2))))

13 
> (+ 10 (call/cc (lambda (c) (+ 1 (c 1)))))

11 

これで継続の動作はできてる はず? 自信が無い…けど嬉しい。

実用CommonLispでの設計、なるほどなーと思った。今の設計、既に何がどう起きるかわからない。ドキュメント書いてないのが悪いんだけど。読みながら新しく書いて比べてみよう。あとドキュメント書いたり自動生成したりしたい。自動生成だなやっぱ。

広告を非表示にする