blog/content/post/2009/11/08/2009-11-08-00001262.md

112 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: The Little Schemer勉強
author: kazu634
date: 2009-11-08
wordtwit_post_info:
- 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:4909;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}'
categories:
- Lisp
---
<div class="section">
<p>
昨日の <a href="http://shibuya.lisp-users.org/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://shibuya.lisp-users.org/', 'Shibuya.lisp');" target="_blank">Shibuya.lisp</a> は自分のレベルにあっていて、とてもよかったです。特に <a href="http://d.hatena.ne.jp/yuum3/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/yuum3/', 'id:yuum3');">id:yuum3</a> さんの発表が私の理解があやふやだった部分とかを体系的にまとめていただいて、ありがたかったです。 <a href="http://d.hatena.ne.jp/higepon/" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/higepon/', 'id:higepon');">id:higepon</a> さんのありふれたスクリプトを scheme で書いてみようという内容で、身近に考えられるようになりました。
</p>
<p>
というわけで、この前買った <i><a href="http://d.hatena.ne.jp/asin/0262560992" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/asin/0262560992', 'The Little Schemer');">The Little Schemer</a></i> を読み始めました。この本、評判いいですねー
</p>
<blockquote title="http" cite="http://www.amazon.co.jp/Little-Schemer-4th-Daniel-Friedman/dp/0262560992/ref=sr_1_1?ie=UTF8&s=english-books&qid=1257671097&sr=8-1">
<p>
SchemeもLispも知らなくても読み進められますSchemeの基礎の基礎から手取り足取り説明してくれるので飛躍的に理解が進むというわけではありませんが着実に理解が深まり読んでいる途中で投げ出したくなる衝動に駆られることもありません日常的にSchemeを使うことはほとんどないけれどもSchemeを好きにさせてくれたありがたい本
</p>
<p>
<cite><a href="http://www.amazon.co.jp/Little-Schemer-4th-Daniel-Friedman/dp/0262560992/ref=sr_1_1?ie=UTF8&s=english-books&qid=1257671097&sr=8-1" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.amazon.co.jp/Little-Schemer-4th-Daniel-Friedman/dp/0262560992/ref=sr_1_1?ie=UTF8&s=english-books&qid=1257671097&sr=8-1', 'http://www.amazon.co.jp/Little-Schemer-4th-Daniel-Friedman/dp/0262560992/ref=sr_1_1?ie=UTF8&#038;s=english-books&#038;qid=1257671097&#038;sr=8-1:title');" target="_blank">http://www.amazon.co.jp/Little-Schemer-4th-Daniel-Friedman/dp/0262560992/ref=sr_1_1?ie=UTF8&s=english-books&qid=1257671097&sr=8-1:title</a></cite>
</p>
</blockquote>
<h4>
わかったこと
</h4>
<p>
第一章まで読んでわかったことは
</p>
<ul>
<li>
car は、リストの先頭の要素を返す
</li>
<li>
cdr は、リストの先頭要素以外の部分を<i>リストの形式で</i>返す
</li>
<li>
cons は、二つ目の引数で指定したものの先頭に、一つ目の引数で指定したものを付け加える
</li>
</ul>
<p>
ということです。
</p>
<h5>
cdr について
</h5>
<p>
この場合だと、「b」が返ってくると思っていた。
</p>
<pre class="syntax-highlight">
gosh&#62; <span class="synSpecial">(</span><span class="synStatement">cdr</span> <span class="synSpecial">'(</span>a b<span class="synSpecial">))</span>
<span class="synSpecial">(</span>b<span class="synSpecial">)</span>
</pre>
<h5>
cons について
</h5>
<pre class="syntax-highlight">
gosh&#62; <span class="synSpecial">(</span><span class="synStatement">cons</span> <span class="synSpecial">'</span><span class="synIdentifier">a</span> <span class="synSpecial">'(</span>b c<span class="synSpecial">))</span>
<span class="synSpecial">(</span>a b c<span class="synSpecial">)</span>
gosh&#62; <span class="synSpecial">(</span><span class="synStatement">cons</span> <span class="synSpecial">'</span><span class="synIdentifier">a</span> <span class="synSpecial">'((</span>b c<span class="synSpecial">)</span> d<span class="synSpecial">))</span>
<span class="synSpecial">(</span>a <span class="synSpecial">(</span>b c<span class="synSpecial">)</span> d<span class="synSpecial">)</span>
</pre>
<div class="hatena-asin-detail">
<a href="http://www.amazon.co.jp/dp/0262560992/?tag=hatena_st1-22&ascsubtag=d-7ibv" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.amazon.co.jp/dp/0262560992/?tag=hatena_st1-22&ascsubtag=d-7ibv', '');"><img src="https://images-na.ssl-images-amazon.com/images/I/41vFTwjzvbL._SL160_.jpg" class="hatena-asin-detail-image" alt="The Little Schemer" title="The Little Schemer" /></a></p>
<div class="hatena-asin-detail-info">
<p class="hatena-asin-detail-title">
<a href="http://www.amazon.co.jp/dp/0262560992/?tag=hatena_st1-22&ascsubtag=d-7ibv" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://www.amazon.co.jp/dp/0262560992/?tag=hatena_st1-22&ascsubtag=d-7ibv', 'The Little Schemer');">The Little Schemer</a>
</p>
<ul>
<li>
<span class="hatena-asin-detail-label">作者:</span> <a href="http://d.hatena.ne.jp/keyword/Daniel%20P%2E%20Friedman" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/keyword/Daniel%20P%2E%20Friedman', 'Daniel P. Friedman');" class="keyword">Daniel P. Friedman</a>,<a href="http://d.hatena.ne.jp/keyword/Matthias%20Felleisen" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/keyword/Matthias%20Felleisen', 'Matthias Felleisen');" class="keyword">Matthias Felleisen</a>
</li>
<li>
<span class="hatena-asin-detail-label">出版社/メーカー:</span> <a href="http://d.hatena.ne.jp/keyword/The%20MIT%20Press" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/keyword/The%20MIT%20Press', 'The MIT Press');" class="keyword">The MIT Press</a>
</li>
<li>
<span class="hatena-asin-detail-label">発売日:</span> 1995/12/21
</li>
<li>
<span class="hatena-asin-detail-label">メディア:</span> ペーパーバック
</li>
<li>
<span class="hatena-asin-detail-label">購入</span>: 10人 <span class="hatena-asin-detail-label">クリック</span>: 137回
</li>
<li>
<a href="http://d.hatena.ne.jp/asin/0262560992" onclick="__gaTracker('send', 'event', 'outbound-article', 'http://d.hatena.ne.jp/asin/0262560992', 'この商品を含むブログ (91件) を見る');" target="_blank">この商品を含むブログ (91件) を見る</a>
</li>
</ul>
</div>
<div class="hatena-asin-detail-foot">
</div>
</div>
</div>