<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Gauche / Drkcore</title><link>http://blog.kzfmix.com/Gauche</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Mon, 08 Sep 2008 21:27:25 +0919</lastBuildDate><item><title>プログラミングGauche読了</title><link>http://blog.kzfmix.com/entry/1220876832</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/4873113482/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51Exg14b4uL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;プログラミングGauche&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Kahuaプロジェクト &lt;br /&gt;
オライリージャパン / ￥ 3,360 ()&lt;br /&gt;
通常24時間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;19章の継続のところのcall/cc、コルーチンの話と、26章の自前で簡易HTTPサーバーを作るところが面白かった。&lt;/p&gt;

&lt;p&gt;また、(SICPと違って)文字列処理とかモジュールの話などの実用性に重きをおいた部分がよくまとまってperlのように使える気にさせられる。&lt;/p&gt;

&lt;p&gt;perlからruby,pythonに移ったって話は聞くけど、perl,ruby,pythonからgaucheに移ったっていうヒトはいるんだろうか？&lt;/p&gt;
</description><pubDate>Mon, 08 Sep 2008 21:27:25 +0919</pubDate><category>Gauche</category><category>Scheme</category></item><item><title>プログラミング Gauche届いた</title><link>http://blog.kzfmix.com/entry/1205638260</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/4873113482/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51Exg14b4uL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;プログラミングGauche&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Kahuaプロジェクト&lt;br /&gt;
    オライリージャパン / 3360円 ( 2008-03-14 )&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>Sun, 16 Mar 2008 12:36:23 +0919</pubDate><category>Gauche</category></item><item><title>プログラミング Gaucheを予約した</title><link>http://blog.kzfmix.com/entry/1204980841</link><description>&lt;p&gt;pydevcampの真っ最中ではあったが、amazonで買えるようになったよというエントリを目にして早速注文&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/4873113482/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51Exg14b4uL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;プログラミングGauche&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Kahuaプロジェクト&lt;br /&gt;
    オライリージャパン / 3360円 ( 2008-03-14 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;NodeBoxをSchemeで動かすという野望を耳にした。楽しみー。&lt;/p&gt;
&lt;p&gt;というか、mac買わんとあかんなmacbook&lt;/p&gt;</description><pubDate>Sat, 08 Mar 2008 22:31:11 +0919</pubDate><category>Gauche</category></item><item><title>letとlet*の違い</title><link>http://blog.kzfmix.com/entry/1201939640</link><description>&lt;p&gt;分かったような分からんような状態だったが。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gosh&amp;gt; (let ((x 2) (y 3))
(let* ((x 7) (z (+ x y))) ;; z -&amp;gt; 10 (x 7)
(* z x)))
70

gosh&amp;gt; (let ((x 2) (y 3))
(let ((x 7) (z (+ x y))) ;; z -&amp;gt; 5 (x 2)
(* z x)))
35
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://www.stdio.h.kyoto-u.ac.jp/~hioki/gairon-enshuu/SchemeNotes/let.html"&gt;let, let*, letrec&lt;/a&gt;を読んで理解した。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;let
&lt;ul&gt;
&lt;li&gt;変数1...変数nのスコープは，let式内部の式1...式mである．&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;let*
&lt;ul&gt;
&lt;li&gt;変数iのスコープは，すぐあとの代入式(変数(i+1) 初期値(i+1))以降のlet*式の内部全てである．&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ということは前者のほうも評価の順序を入れ替えてやれば、、、&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gosh&amp;gt;  (let ((x 2) (y 3))
(let* ((z (+ x y)) (x 7)) ;; ここ変えた
(* z x)))
35
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;なるほど。&lt;/p&gt;
</description><pubDate>Sat, 02 Feb 2008 17:13:18 +0919</pubDate><category>Gauche</category></item><item><title>継続をつかみかけ</title><link>http://blog.kzfmix.com/entry/1198250931</link><description>&lt;p&gt;なんとなく掴みかけてきた。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://mayah.jp/article/2004/continuation"&gt;call/cc 入門&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;continuation は「continuation が呼ばれると、continuation が作られた call/cc の外に、引数を call/cc の返り値としてジャンプする」というのが正しい振る舞いです。&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gosh&amp;gt; (+ 5 (call/cc (lambda (cont) (* 10 10))))
105
gosh&amp;gt; (+ 5 (call/cc (lambda (cont) (cont 10))))
15
gosh&amp;gt; (+ 5 (call/cc (lambda (cont) (cont (+ 1 2 3)))))
11
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;次にやる処理を包み込んでひっくり返すというイメージよりは、単純にセーブポイントと考えたほうがよいのかな。call/ccの返り値としてジャンプ&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gosh&amp;gt; (define cont #f)
cont
gosh&amp;gt; (+ 5 (call/cc (lambda (c) (begin (set! cont c) 10))))
15
gosh&amp;gt; (cont 30)
35
gosh&amp;gt; (cont (+ 1 2 3))
11
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;さてcall/ccを通って何かが出て行くというイメージだと、二枚がけとかできそうな感じなのでやってみる。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gosh&amp;gt; (+ 10 (call/cc (lambda (d) (begin (set! cont2 d) 
(+ 5 (call/cc (lambda (c) (begin (set! cont c) 10))))))))
25
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;セーブポイントはcont2とcontの二箇所。cont2をよべば(+ 10 cont2の返り値),contを呼べば(+ 10 (+ 5 contの返り値)が評価されるはず。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;gosh&amp;gt; (cont 3)
18
gosh&amp;gt; (cont2 3)
13
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;おーきた。call/ccからジャンプしてきた。なんつーかperlのデバッガで作業してるみたいな感覚だ。&lt;/p&gt;
</description><pubDate>Sat, 22 Dec 2007 00:53:44 +0919</pubDate><category>Gauche</category></item><item><title>Gaucheのbeginはperlのdo</title><link>http://blog.kzfmix.com/entry/1189512765</link><description>&lt;p&gt;最後の式を評価して返す&lt;/p&gt;
</description><pubDate>Tue, 11 Sep 2007 21:13:10 +0919</pubDate><category>perl</category><category>Gauche</category><category>Scheme</category></item><item><title>Gaucheの引数</title><link>http://blog.kzfmix.com/entry/1189426413</link><description>&lt;p&gt;GaucheはなにやらPerlとかPythonっぽくて楽しいですな。毎日&lt;a href="http://d.hatena.ne.jp/rui314/"&gt;Gaucheクックブック&lt;/a&gt;を一つは読むようにしてわからないとこを調べながらというスタイルで。(まだ3日だけど日付順に読んでる)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://practical-scheme.net/gauche/man/gauche-refj_15.html#SEC17"&gt; 3.3 Schemeスクリプトを書く&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;いくつか簡単な例を示します。最初の例はUnixのcat(1)コマンドを模するものです。エラー処理やコマンドラインオプションの処理は行っていません。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env gosh

(define (main args)   ;entry point
  (if (null? (cdr args))
...
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;(cdr args)ってことはperlの$0みたいに(car args)もプログラム自身の名前を返すのかも。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;(define (main args)
(print "car:\t" (car args))
(print "pname:\t" *program-name*))
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;program-name&lt;/em&gt;はスクリプトファイル名に束縛されるらしい。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$gosh test.scm
car:    test.scm
pname:  test.scm
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Mon, 10 Sep 2007 21:21:37 +0919</pubDate><category>Gauche</category><category>Scheme</category></item><item><title>Gaucheのlet1</title><link>http://blog.kzfmix.com/entry/1189252871</link><description>&lt;p&gt;let1って何だろうって思ったので。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://practical-scheme.net/gauche/man/gauche-refj_27.html#SEC33"&gt;Gauche ユーザリファレンス: 4.6 変数束縛&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;let1 var expr body …&lt;/p&gt;
  
  &lt;p&gt;変数が一つしか無い場合の便利なマクロです。次のように展開されます。&lt;/p&gt;
  
  &lt;p&gt;(let ((var expr)) body …)&lt;/p&gt;
&lt;/blockquote&gt;
</description><pubDate>Sat, 08 Sep 2007 21:04:03 +0919</pubDate><category>Gauche</category><category>Scheme</category></item><item><title>Gaucheのdisplayとprintって</title><link>http://blog.kzfmix.com/entry/1188657897</link><description>&lt;p&gt;Gaucheのdisplayとprintってperlのprintとsayと似たような関係なんだろうか?と思った。&lt;/p&gt;
</description><pubDate>Sat, 01 Sep 2007 23:45:28 +0919</pubDate><category>perl</category><category>Gauche</category></item><item><title>SICP一章読了</title><link>http://blog.kzfmix.com/entry/1185873394</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/489471163X/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ec1.images-amazon.com/images/I/21GVSKCQ0KL.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;計算機プログラムの構造と解釈&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
ジェラルド・ジェイ サスマン,ジュリー サスマン,ハロルド エイブルソン &lt;br /&gt;
ピアソンエデュケーション / ￥ 4,830 (2000-02)&lt;br /&gt;
通常24時間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;それにしてもやっとって感じ。&lt;/p&gt;
</description><pubDate>Tue, 31 Jul 2007 18:16:59 +0919</pubDate><category>SICP</category><category>Gauche</category></item></channel></rss>