<?xml version="1.0" encoding="utf-8" ?>
<rss version='2.0'><channel><title>よれよれスクラップ帳</title
><link>http://karetta.jp/blog/kitokitoki</link
><description></description
><lastBuildDate>Fri, 28 Nov 2008 05:52:00 +0900</lastBuildDate
><item><title>文字列のリストをカンマ区切りで出力</title
><link>http://karetta.jp/article/blog/kitokitoki/235516</link
><pubDate>Fri, 28 Nov 2008 05:54:50 +0900</pubDate
><description>&lt;div&gt;&lt;p&gt;&lt;a href=&#39;http://d.hatena.ne.jp/rui314/20070607/p1&#39;&gt;http://d.hatena.ne.jp/rui314/20070607/p1&lt;/a
&gt;
&lt;/p
&gt;&lt;blockquote&gt;&lt;p&gt;特別な理由がなければstring-joinを、文字列が巨大なときにはintersperseの使用をお勧めします。
&lt;/p
&gt;&lt;/blockquote
&gt;&lt;hr /&gt;&lt;div class=&#39;articleFooter&#39;&gt;by &lt;a href=&#39;http://karetta.jp/profile/235184&#39;&gt;kitokitoki&lt;/a
&gt; | &lt;a href=&#39;http://karetta.jp/article/blog/kitokitoki/235516/commentForm&#39;&gt;Comments(0)&lt;/a
&gt; | &lt;a href=&#39;http://karetta.jp/article/blog/kitokitoki/235516/trackbackList&#39;&gt;Trackbacks(0)&lt;/a
&gt;&lt;/div
&gt;&lt;/div
&gt;</description
></item
><item><title>returnなど</title
><link>http://karetta.jp/article/blog/kitokitoki/235209</link
><pubDate>Sun, 23 Nov 2008 00:44:58 +0900</pubDate
><description>&lt;div&gt;&lt;p&gt;&lt;a href=&#39;http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E3%81%AA%E3%81%9CScheme%E3%81%AB%E3%81%AFreturn%E3%81%8C%E7%84%A1%E3%81%84%E3%81%AE%E3%81%8B&#39;&gt;http://practical-scheme.net/wiliki/wiliki.cgi?Scheme%3A%E3%81%AA%E3%81%9CScheme%E3%81%AB%E3%81%AFreturn%E3%81%8C%E7%84%A1%E3%81%84%E3%81%AE%E3%81%8B&lt;/a
&gt;
&lt;/p
&gt;&lt;blockquote&gt;&lt;p&gt;でも、どうしてもfor-eachからreturnを使いたいなら、call/ccってのを使ってこうも書けるよ。
(中略)
(call/cc (lambda (return) ...)) は説明すると長くなるけど、まあ、 returnってラベルを定義してるもんだと思ってくれればいい。 
&lt;/p
&gt;&lt;/blockquote
&gt;&lt;blockquote&gt;&lt;p&gt;call/ccってのがあると、returnとかbreakとかcontinueみたいな構文要素は全部表現できるし、さらにもっとすごいこともできるんだ。それなら、call/ccだけをプリミティブで持ってればいいって考えなのさ。 
&lt;/p
&gt;&lt;/blockquote
&gt;&lt;blockquote&gt;&lt;p&gt;(return, break, continue等の構文は)、ブロックなり外側の関数なりを特別扱いしているから意味を持つ。一方Schemeでは、(全てはlambda)だ。関数も、ブロックも、変数束縛さえも。
&lt;/p
&gt;&lt;p&gt;それによって、Schemerはプログラムを自由自在に(分解して)(再合成する) ことができる。 
&lt;/p
&gt;&lt;/blockquote
&gt;&lt;blockquote&gt;&lt;p&gt;Schemeでは、(関数の定義)と(変数の束縛)とを区別せず、(関数の定義)とは (無名関数を作ってそれを変数に束縛すること)という、 (非常にシンプルなモデル)を採用した。しかし、そのモデルでは、 (トップレベルの関数定義だけ特別扱いする)ということは不自然だ。トップレベルであろうが、他の関数の内部であろうが、lambdaはlambdaだからね。 
&lt;/p
&gt;&lt;/blockquote
&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;return、break、continueなどをSchemeで実装するためには、それの飛び先を示すことが必要だ。
&lt;/li
&gt;&lt;li&gt;飛び先を示すには、ブロックにラベルをつけてやればいい
&lt;/li
&gt;&lt;li&gt;ラベルに継続を束縛するようにすれば、ラベルだけ特別扱いすることもないし、そこに飛ぶための特別な構文も必要としない。 
&lt;/li
&gt;&lt;/ul
&gt;&lt;/blockquote
&gt;&lt;p&gt;let は lambda の糖衣構文だし、
&lt;/p
&gt;&lt;blockquote&gt;&lt;p&gt;変数束縛っていうのは本質的にはlambdaである
&lt;/p
&gt;&lt;/blockquote
&gt;&lt;p&gt;わかりやすかった。
&lt;/p
&gt;&lt;hr /&gt;&lt;div class=&#39;articleFooter&#39;&gt;by &lt;a href=&#39;http://karetta.jp/profile/235184&#39;&gt;kitokitoki&lt;/a
&gt; | &lt;a href=&#39;http://karetta.jp/article/blog/kitokitoki/235209/commentForm&#39;&gt;Comments(0)&lt;/a
&gt; | &lt;a href=&#39;http://karetta.jp/article/blog/kitokitoki/235209/trackbackList&#39;&gt;Trackbacks(0)&lt;/a
&gt;&lt;/div
&gt;&lt;/div
&gt;</description
></item
><item><title>連想リストはハッシュテーブルと違うのか</title
><link>http://karetta.jp/article/blog/kitokitoki/235199</link
><pubDate>Sun, 23 Nov 2008 00:06:01 +0900</pubDate
><description>&lt;div&gt;&lt;p&gt;&lt;a href=&#39;http://d.hatena.ne.jp/rui314/20070625/p1&#39;&gt;http://d.hatena.ne.jp/rui314/20070625/p1&lt;/a
&gt;
&lt;/p
&gt;&lt;blockquote&gt;&lt;p&gt;連想リストはハッシュテーブルのように使うことができますが、ハッシュテーブルとは異なる性質を持ちます。
&lt;/p
&gt;&lt;ul&gt;&lt;li&gt;ルックアップにO(n)の時間が必要
&lt;/li
&gt;&lt;li&gt;キーに新しい値をセットするときに破壊的変更を避けられる
&lt;/li
&gt;&lt;li&gt;値からキーを引くことができる
&lt;/li
&gt;&lt;/ul
&gt;&lt;/blockquote
&gt;&lt;p&gt;写経メモ
&lt;/p
&gt;&lt;ul&gt;&lt;li&gt;(assq foo alist) は (assq &amp;#39;foo alist) だと思う。
&lt;/li
&gt;&lt;li&gt;(assq-ref foo alist) は  unbound variable: foo と言われた。
&lt;/li
&gt;&lt;li&gt;(assq-ref &amp;#39;foo alist) にすると unbound variable: assq-ref と言われた。
&lt;/li
&gt;&lt;/ul
&gt;&lt;hr /&gt;&lt;div class=&#39;articleFooter&#39;&gt;by &lt;a href=&#39;http://karetta.jp/profile/235184&#39;&gt;kitokitoki&lt;/a
&gt; | &lt;a href=&#39;http://karetta.jp/article/blog/kitokitoki/235199/commentForm&#39;&gt;Comments(0)&lt;/a
&gt; | &lt;a href=&#39;http://karetta.jp/article/blog/kitokitoki/235199/trackbackList&#39;&gt;Trackbacks(0)&lt;/a
&gt;&lt;/div
&gt;&lt;/div
&gt;</description
></item
><item><title>このブログについて </title
><link>http://karetta.jp/article/blog/kitokitoki/235190</link
><pubDate>Sun, 23 Nov 2008 04:34:02 +0900</pubDate
><description>&lt;div&gt;&lt;p&gt;このブログは、WEB 上でみつけた、「ほほー」という情報を、いちいち自分の言葉に咀嚼することなく、ペタペタ貼り付けていく、私のスクラップブックです。そのうち一人前の Lisper になれるといいな。がんばろうー。
&lt;/p
&gt;&lt;hr /&gt;&lt;div class=&#39;articleFooter&#39;&gt;by &lt;a href=&#39;http://karetta.jp/profile/235184&#39;&gt;kitokitoki&lt;/a
&gt; | &lt;a href=&#39;http://karetta.jp/article/blog/kitokitoki/235190/commentForm&#39;&gt;Comments(0)&lt;/a
&gt; | &lt;a href=&#39;http://karetta.jp/article/blog/kitokitoki/235190/trackbackList&#39;&gt;Trackbacks(0)&lt;/a
&gt;&lt;/div
&gt;&lt;/div
&gt;</description
></item
></channel
></rss
>