星にゃーんのブログ

ほとんど無害。

Scheme 継続

もうひとつのScheme入門 16. 継続を写経した。 「継続」は、計算において必ず存在する。 しかし、明示的に扱われることが少ない。 例えば、 (* 3 (+ 1 2)) のような計算があるとき、(+ 1 2)を評価した後の残りの計算は、(* 3 _)である。 この部分を継続と呼…

SBCLで(progn (princ hoge) (read))の実行順序が入れ替わるときの対処法

問題のコードがこれ (defun read-with-prompt () (princ "> ") (read)) CLISPではきちんと動く。 [1]> (read-with-prompt) > hoge hoge SBCLではこうなる。 * (read-with-prompt) hoge > hoge princよりも先にreadが実行されてしまう。 この問題は、SBCLの最…

declaim

(declaim (inline function-name)) declaimはマクロ。 型宣言したり、インライン展開したり、コードの最適化に使われる。 http://cl.cddddr.org/index.cgi?%e6%9c%80%e9%81%a9%e5%8c%96#H-1yksz98dk7cep ここが詳しい。

Land of Lisp 読んでみた。

Land of Lisp作者: M.D. ConradBarski,Conrad Barski,川合史朗出版社/メーカー: オライリージャパン発売日: 2013/02/23メディア: 大型本購入: 1人 クリック: 18回この商品を含むブログ (19件) を見る これを買った。 表紙にいる緑色の怪物はLispエイリアンと…

Go言語でもプリプロセッサしたかった

cppというコマンドがある。 引数にCのソースを取り、標準出力にプリプロセッサを展開したCのソースを返す。 で、Go言語のソースでも、Cのプリプロセッサを書いてcppに通せばプリプロセッサできる。 Cのプリプロセッサ on Go言語 実行はこうする。 $ cpp hell…

C言語でmapしたかった

※注意: この記事に実用性はありません。 C言語で遊んでたら、突然写像の方のmapを書きたくなったので、ggってみた。 するとありがたいことにこんな記事が。 ワンダープラネット株式会社(WonderPlanet Inc.) でも、配列の長さをいちいち指定しないといけな…