<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>lisp / Drkcore</title><link>http://blog.kzfmix.com/lisp</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Wed, 19 Jan 2011 18:52:04 +0919</lastBuildDate><item><title>AMOP到着</title><link>http://blog.kzfmix.com/entry/1234186954</link><description>&lt;p&gt;そのうち読む&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/0262610744/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51xZR%2B68JzL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;The Art of the Metaobject Protocol&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Gregor Kiczales&lt;br /&gt;
    The MIT Press / 4372円 ( 1991-07-30 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;絶対。&lt;/p&gt;</description><pubDate>Wed, 19 Jan 2011 18:52:04 +0919</pubDate><category>lisp</category><category>AMOP</category></item><item><title>初めての人のためのLISP[増補改訂版]</title><link>http://blog.kzfmix.com/entry/1267650131</link><description>&lt;p&gt;これは欲しいのう&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798119415/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51ikcrx1kSL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;初めての人のためのLISP[増補改訂版]&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
竹内 郁雄 &lt;br /&gt;
翔泳社 / ￥ 3,129 ()&lt;br /&gt;
近日発売　予約可&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;
</description><pubDate>Thu, 04 Mar 2010 06:02:22 +0919</pubDate><category>lisp</category></item><item><title>Programming Clojureを読みはじめた</title><link>http://blog.kzfmix.com/entry/1253709232</link><description>&lt;p&gt;年末か年始に日本語版がでるそうなのでそれまでには一通り読んでおきたい。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1934356336/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51p4G8yo2-L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Programming Clojure (Pragmatic Programmers)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Stuart Halloway &lt;br /&gt;
Pragmatic Bookshelf / ￥ 3,198 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Perl/Python/Rubyプログラマは特に6章のConcurrencyのところ7章のマクロを読むと良いですぞとprefaceに書いてあった。&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;090923現在2775円って洋書にしてはかなり安い値段な気がする。&lt;/p&gt;
</description><pubDate>Wed, 23 Sep 2009 21:38:48 +0919</pubDate><category>lisp</category><category>Clojure</category></item><item><title>OCamlとlambda</title><link>http://blog.kzfmix.com/entry/1247046338</link><description>&lt;p&gt;後者は構文糖衣?&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# let f = fun x -&amp;gt; x * x
val f : int -&amp;gt; int = &amp;lt;fun&amp;gt;
# let g x = x * x;;
val g : int -&amp;gt; int = &amp;lt;fun&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;ここまでやれる&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# ( * ) 4 4;;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Common Lispだとこうかな&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(setq f (lambda (x) (* x x)))
(funcall f 4)

(defun g (x) (* x x))
(g 4)
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Wed, 08 Jul 2009 18:47:01 +0919</pubDate><category>lisp</category><category>OCaml</category></item><item><title>Programming Clojure</title><link>http://blog.kzfmix.com/entry/1245154128</link><description>&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1232631833"&gt;予約したまま&lt;/a&gt;5ヶ月近くたち、忘れかけてたProgramming Clojureが発送された。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1934356336/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51p4G8yo2-L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Programming Clojure&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
S Holloway &lt;br /&gt;
Pragma / ￥ 3,368 ()&lt;br /&gt;
通常9～13日以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;
</description><pubDate>Tue, 16 Jun 2009 21:09:08 +0919</pubDate><category>lisp</category><category>java</category></item><item><title>MooseでLisp(MoospのFunction::Setq)</title><link>http://blog.kzfmix.com/entry/1242541473</link><description>&lt;p&gt;&lt;a href="http://www.okisoft.co.jp/esc/go2.html"&gt;やさしい Lisp の作り方 by Java and by C#&lt;/a&gt;を参考に書いてみる。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sub fun {
  my ($self, $arguments) = @_;
  my $arg1 = $self-&amp;gt;eval-&amp;gt;eval($arguments-&amp;gt;cdr)-&amp;gt;car;
  my $sym = $arguments-&amp;gt;car;
  $sym-&amp;gt;value($arg1);
  $self-&amp;gt;env-&amp;gt;put($sym,$sym-&amp;gt;name);
  return $arg1;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;束縛するものがリストだと、まだうまくいかない。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Moosp&amp;gt; (setq a 5)
5
Moosp&amp;gt; (setq b 2)
2
Moosp&amp;gt; (+ a b)
7
Moosp&amp;gt; (setq c (+ 1 2))
Attribute (value) does not pass the type constraint because: Validation
failed for 'Moosp::Sexp' failed with value Moosp::List=HASH(0xa2a110) at lib/Moosp/Function/Setq.pm line 22
Moosp::Function::Setq::fun('Moosp::Function::Setq=HASH(0xa208a0)',
'Moosp::List=HASH(0xa29a80)') called at lib/Moosp/Eval.pm line 93
Moosp::Eval::eval('Moosp::Eval=HASH(0xa1dcc0)',
'Moosp::List=HASH(0xa29fa0)') called at lib/Moosp.pm line 67
Moosp::run('Moosp=HASH(0x804320)') called at moosp.pl line 7
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Sun, 17 May 2009 15:30:14 +0919</pubDate><category>perl</category><category>lisp</category><category>Moose</category><category>Moosp</category></item><item><title>MooseでLisp(MoospのFunction::Add)</title><link>http://blog.kzfmix.com/entry/1242304637</link><description>&lt;p&gt;&lt;a href="http://www.okisoft.co.jp/esc/go2.html"&gt;やさしい Lisp の作り方 by Java and by C#&lt;/a&gt;を参考に書いてみる。&lt;/p&gt;

&lt;p&gt;REPLまで出来て&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(+ 1 2)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;は動くのに&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(+ (+ 1 2) 3)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;が動かなくて、evalの再帰が悪いのかと思ったら、Functionのほうだった。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;sub fun {
  my ($self, $arguments) = @_;
  my $arg1;
  my $ret =  Moosp::Integer-&amp;gt;new(value =&amp;gt; 0);
  return $ret if ($arguments-&amp;gt;isa('Moosp::Nil'));

  while (1) {
    $arg1 = $self-&amp;gt;eval-&amp;gt;eval($arguments-&amp;gt;car);
    $ret = $ret-&amp;gt;add($arg1);
    last if ($arguments-&amp;gt;cdr-&amp;gt;isa('Moosp::Nil'));
    $arguments = $arguments-&amp;gt;cdr;
  }
  return $ret;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;carがfunctionの場合はcdr部は全て評価済みにしておかないといけないんだった。&lt;/p&gt;

&lt;p&gt;やっとうまく動いた&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Moosp&amp;gt; (+ (+ 1 2) (+ 3 4))
10
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;tak実行が見えてきた。&lt;/p&gt;
</description><pubDate>Thu, 14 May 2009 21:39:15 +0919</pubDate><category>perl</category><category>lisp</category><category>Moose</category><category>Moosp</category></item><item><title>MooseでLispを実装してみる(REPL)</title><link>http://blog.kzfmix.com/entry/1241262221</link><description>&lt;p&gt;&lt;a href="http://www.okisoft.co.jp/esc/go2.html"&gt;やさしい Lisp の作り方 by Java and by C#&lt;/a&gt;を参考に書いてみる。(14日目のあたり)&lt;/p&gt;

&lt;p&gt;REPLまでやって対話環境にしてみたら、エラーが出まくる。readerよりはevaluatorまわりの気がしないでもない。なんか細かいとこから見直さないといけなさそうなので&lt;a href="http://search.cpan.org/perldoc?Test::Pod::Coverage"&gt;Test::Pod::Coverage&lt;/a&gt;とかちゃんと通るようにという気晴らしを。&lt;/p&gt;

&lt;p&gt;明日から、帰省するので向こうでちまちまデバッグをする予定。ゴールデンウィーク中には最後(takの実行)までは行きたい。&lt;/p&gt;
</description><pubDate>Sat, 02 May 2009 20:04:02 +0919</pubDate><category>perl</category><category>lisp</category><category>Moose</category><category>Moosp</category></item><item><title>MooseでLispを実装してみる(Eval)</title><link>http://blog.kzfmix.com/entry/1241095926</link><description>&lt;p&gt;&lt;a href="http://www.okisoft.co.jp/esc/go2.html"&gt;やさしい Lisp の作り方 by Java and by C#&lt;/a&gt;を参考に書いてみる。(13日目のあたり)&lt;/p&gt;

&lt;p&gt;REPLのE、つまり評価器をつくる。これが終われば統合して処理系を完成させるのみ。&lt;/p&gt;

&lt;p&gt;しかし10日目のCARがevalしたあとのcarを返すようになっているのだけど、evalはlistを戻さんよ？最後の処理系の完成のところで色々バグが見つかる予感(大)&lt;/p&gt;
</description><pubDate>Thu, 30 Apr 2009 21:52:37 +0919</pubDate><category>perl</category><category>lisp</category><category>Moose</category><category>Moosp</category></item><item><title>MooseでLispを実装してみる(Readerのデバッグ)</title><link>http://blog.kzfmix.com/entry/1240919140</link><description>&lt;p&gt;&lt;a href="http://www.okisoft.co.jp/esc/go2.html"&gt;やさしい Lisp の作り方 by Java and by C#&lt;/a&gt;を参考に書いてみる。(12日目のあたり)&lt;/p&gt;

&lt;p&gt;()がNilになるようにReaderをいじる。makeListメソッドをちょっと変えればいいだけ。&lt;/p&gt;
</description><pubDate>Tue, 28 Apr 2009 20:45:40 +0919</pubDate><category>perl</category><category>lisp</category><category>Moose</category><category>Moosp</category></item></channel></rss>