実践Common Lisp 7-9章

マクロに関して。

ProductName 実践Common Lisp
Peter Seibel
オーム社 / ¥ 4,410 ()
通常24時間以内に発送

9章でマクロを使ってユニットテストを書いていくんだけど、抽象化の過程がやたらと面白かった。

「外資で働くためのキャリアアップ英語術」を読んだ

Business English Podみたいな感じの会話がつらつらと、というよりは「履歴書書いて入社までの会話を時系列で」みたいな内容。

ProductName 外資で働くためのキャリアアップ英語術
河口 鴻三
日本経済新聞社 / ¥ 1,260 ()
通常24時間以内に発送

英語の勉強というよりは、会話を通したマインドセットの違いのほうが勉強になった。

実践Common Lisp 4-6章

シンタックス、セマンティクス、変数、関数あたりの説明。

ProductName 実践Common Lisp
Peter Seibel
オーム社 / ¥ 4,410 ()
通常24時間以内に発送

ダイナミック変数ってのは要するにperlでいうグローバル変数のようなものか?そしてletがlocalに似た挙動を示すっぽいな。

実践Common Lispが来た

来た。

ProductName 実践Common Lisp
Peter Seibel
オーム社 / ¥ 4,410 ()
通常24時間以内に発送

Common Lisp 入門を読んでおいたので、さくっと3章くらいまで読んだ。

3章でいきなり属性リストを使ったデータベースを作り始めたが、ストレスなく読み進められそうで良書の予感はする。

カウンターのクロージャ

common lispだと

(let ((count 0))
  (list
  #'(lambda () (incf count))
  #'(lambda () (decf count))
  #'(lambda () (count)))

同じことをperlでもlispっぽくかける。

#!/usr/bin/env perl

use Perl6::Say;

sub make_counter {
  my $c = 0;
  return (
      sub {$c++},
      sub {$c--},
      sub {$c}
     );
}

my ($inc,$dec,$counter) = make_counter();

say $counter->(); # 0
$inc->();
$inc->();
$inc->();
say $counter->(); # 3
$dec->();
say $counter->(); # 2

ProductName 実践Common Lisp
Peter Seibel
オーム社 / ¥ 4,410 ()
通常24時間以内に発送

tar.bz2の展開

いままで

bzip2 -dc file.tar.bz2 | tar xvf -

とかやってたけど、

tar xvfj file.tar.bz2

でいいのね。

CTMCP chapter5 終了

メッセージ伝達並列性

ProductName コンピュータプログラミングの概念・技法・モデル(IT Architect' Archiveクラシックモダン・コンピューティング6) (IT Architects’Archive CLASSIC MODER)
セイフ・ハリディ,ピーター・ヴァン・ロイ,Peter Van-Roy,Seif Haridi
翔泳社 / ¥ 8,610 ()
通常24時間以内に発送

  • メッセージ伝達並列モデルは宣言的並列モデルに非同期通信チャンネルという概念を付加したもので、このモデルは非決定性である

最後のほうにerlangの簡単な説明の節があったが、erlangは触ったことないのでとりあえず

sudo port install erlang

してみた。後で時間があったら触ってみたいところ。

あまり並列処理をガンガンまわすということはやってないので、いまいち興味が、、、、というわけだったので、少し読み飛ばした。

CTMCP chapter4 終了

宣言的並列性に関して

ProductName コンピュータプログラミングの概念・技法・モデル(IT Architect' Archiveクラシックモダン・コンピューティング6) (IT Architects’Archive CLASSIC MODER)
セイフ・ハリディ,ピーター・ヴァン・ロイ,Peter Van-Roy,Seif Haridi
翔泳社 / ¥ 8,610 ()
通常24時間以内に発送

  • エラトステネスの篩をthreadを使って
  • 性急実行も遅延実行も有界バッファの極端な場合にすぎない。バッファの大きさを無限大にすれば性急実行でゼロにすれば遅延実行
  • ラッチ回路
  • 順序決定並列性
    • データフロー実行
  • 現実世界は宣言的ではない
  • 典型的なErlang抽象として関数が他言語で書かれた宣言的プログラムを、状態あり、並列でフォールトトレラントのプログラムにするものがある。

データフロー変数ってのがなんだか面白そうだったのでググったらみずぴー日記の方がOCamlでやってた。さらにコメント欄が参考になった。

perlだとthreads::sharedとかで変数を共有しといてundefじゃなくなるのを監視してれば未束縛の変数っぽい振る舞いをさせることができんのかな。pythonは全然わからん。

sbcl+SLIME+Carbon Emacs

今年はcommon lispを覚えようと目標を立てたので、早速環境を整えてみた。clisp+SLIMEだとwarningがやたら出たり挙動がへんだったりしたのでとりあえずsbclを使うことにした。

そしてNinety-Nine Lisp Problemsを解いていく。

あとはこの二冊をやる予定。

ProductName Principles of Biomedical Informatics
Ira J. Kalet PhD
Academic Press / 6173円 ( 2008-10-15 )


ProductName 実践Common Lisp
Peter Seibel
オーム社 / 4410円 ( 2008-07-26 )


「考具」を読んだ

どこかのブログでみつけて面白そうだったので年末に買っておいた。今年はインプット、アウトプットの出入り量をもう少し多くしたいところ。

ProductName 考具―考えるための道具、持っていますか?
加藤 昌治
阪急コミュニケーションズ / ¥ 1,575 ()
通常24時間以内に発送

  • whatとhowの境目はあいまい
  • アイデアとは既存の要素の新しい組み合わせ以外の何ものでもない
  • 既存のアイデアはたくさん知っていたほうが有利
  • カラーバス
  • マインドマップ
  • オズボーンのチェックリスト
  • 企画は読んだヒトがビジュアライズできるかどうかが重要

オズボーンのチェックリストは最初からテンプレートを作っておけばよかろうと、freemindのテンプレートを作った。

oz