<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feedsky.blogbus.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><link atom:type="text/html">http://panxz.blogbus.com/</link><fs:self_link href="http://feeds.feedsky.com/blogbus.com/panxz_blogbus_com" type="application/rss+xml"></fs:self_link><lastBuildDate>Sat, 04 Jul 2009 14:58:35 GMT</lastBuildDate><title>walker...to the next step</title><description>- 潘行之</description><atom:link href="http://feedsky.blogbus.com/panxz_blogbus_com" type="application/rss+xml" rel="self"></atom:link><generator xmlns="http://www.w3.org/2005/Atom" uri="http://www.blogbus.com/">博客大巴</generator><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/atom.xml</id><link xmlns="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://panxz.blogbus.com/atom.xml"></link><pubDate>Sat, 04 Jul 2009 15:43:45 GMT</pubDate><image><title>walker...to the next step</title><url>http://public.blogbus.com/profile/3/8/8/1406883/avatar_1406883_96.jpg</url><link>http://panxz.blogbus.com/</link></image><item><title>搬迁/Migration</title><link atom:type="text/html">http://panxz.blogbus.com/logs/41899197.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>老潘</name></author><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/logs/41899197.html</id><description>&lt;p&gt;老潘已转到&lt;a href=&quot;http://www.panxingzhi.net/&quot; target=&quot;_blank&quot;&gt;http://www.panxingzhi.net/&lt;/a&gt;。所有旧文章如有改动，此处将不再更新。谢谢。&lt;/p&gt;
&lt;p&gt;I've moved to &lt;a href=&quot;http://www.panxingzhi.net/&quot; target=&quot;_blank&quot;&gt;http://www.panxingzhi.net/&lt;/a&gt;. Updates on old posts are not applied here. Thanks.&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/39500242.html&quot;&gt;大家动作好快啊！！！&lt;/a&gt; 2009-05-16&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/37729436.html&quot;&gt;原谅自己&lt;/a&gt; 2009-04-10&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/37934432.html&quot;&gt;Lingoes未公布的快捷键&lt;/a&gt; 2009-03-10&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33321936.html&quot;&gt;变化&lt;/a&gt; 2009-01-02&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/29807875.html&quot;&gt;结项&lt;/a&gt; 2008-10-01&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://icity.cn&quot; target=&quot;_blank&quot;&gt;《城客》：第一本中文互动杂志！&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fpanxz.blogbus.com%2Flogs%2F41899197.html&amp;title=%E6%90%AC%E8%BF%81%2FMigration&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/240784280/panxz_blogbus_com/blogbus.com/s.gif?r=http://panxz.blogbus.com/logs/41899197.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/panxz_blogbus_com/240784280/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/panxz_blogbus_com/240784280/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://panxz.blogbus.com/c/">未分类</category><pubDate>Sat, 04 Jul 2009 22:58:35 +0800</pubDate><guid isPermaLink="false">http://panxz.blogbus.com/logs/41899197.html</guid><dc:creator>老潘</dc:creator><fs:srclink>http://panxz.blogbus.com/logs/41899197.html</fs:srclink><fs:srcfeed>http://panxz.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/panxz_blogbus_com/~6926543/240784280/5034455</fs:itemid></item><item><title>大家动作好快啊！！！</title><link atom:type="text/html">http://panxz.blogbus.com/logs/39500242.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>老潘</name></author><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/logs/39500242.html</id><description>&lt;p&gt;啊啊，真是受不了，大家动作好快啊，北言趁着生日去领证儿了，海底鱼姐姐都有喜了。。。&lt;/p&gt;
&lt;p&gt;我我我，我只能说，我没浪费生命。。。剩下的顺其自然吧，唉。&lt;/p&gt;
&lt;p&gt;最近想看很多书，尤其是政治和历史的。与其说我对政治和历史感兴趣，不如说我对人类的生活感兴趣。可惜上学时那么多政治课历史课，竟令我一点劲头都没有。&lt;/p&gt;
&lt;p&gt;向各位等SICP答案的看官说声抱歉，老潘实在分身乏术，但老潘虽然慢，却断不会放弃，会坚持把每一道题写完！&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/41899197.html&quot;&gt;搬迁/Migration&lt;/a&gt; 2009-07-04&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/37729436.html&quot;&gt;原谅自己&lt;/a&gt; 2009-04-10&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/37934432.html&quot;&gt;Lingoes未公布的快捷键&lt;/a&gt; 2009-03-10&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33321936.html&quot;&gt;变化&lt;/a&gt; 2009-01-02&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/29807875.html&quot;&gt;结项&lt;/a&gt; 2008-10-01&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://zhuanti.blogbus.com/kfc20/article/list&quot; target=&quot;_blank&quot;&gt;上海肯德基20年Say Yes-光阴的故事&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fpanxz.blogbus.com%2Flogs%2F39500242.html&amp;title=%E5%A4%A7%E5%AE%B6%E5%8A%A8%E4%BD%9C%E5%A5%BD%E5%BF%AB%E5%95%8A%EF%BC%81%EF%BC%81%EF%BC%81&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/240784281/panxz_blogbus_com/blogbus.com/s.gif?r=http://panxz.blogbus.com/logs/39500242.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/panxz_blogbus_com/240784281/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/panxz_blogbus_com/240784281/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://panxz.blogbus.com/c/">未分类</category><pubDate>Sat, 16 May 2009 22:06:23 +0800</pubDate><guid isPermaLink="false">http://panxz.blogbus.com/logs/39500242.html</guid><dc:creator>老潘</dc:creator><fs:srclink>http://panxz.blogbus.com/logs/39500242.html</fs:srclink><fs:srcfeed>http://panxz.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/panxz_blogbus_com/~6926543/240784281/5034455</fs:itemid></item><item><title>twilight之棒球</title><link atom:type="text/html">http://panxz.blogbus.com/logs/39146520.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>老潘</name></author><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/logs/39146520.html</id><description>&lt;p&gt;经老潘在朋友间小规模调研，得出结论：大家普遍最喜欢打棒球那场戏。&lt;/p&gt;
&lt;p&gt;这究竟是为什么呢？我觉得大概是因为那场戏太健康了吧。一群体力无限跑不死，登高上树掏鸟窝的型男型女，他们在风雨交加的一天。。。打棒球。。。人总是对自己没有的东西充满了向往。从某种程度上来说，短短几十秒的镜头，满足了一点点我们内心深处继承自远古的对那种充满野性力量身体的渴望。&lt;/p&gt;
&lt;p&gt;总觉得那个吸血鬼医生耍棒子的姿势很帅啊~&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/20741826.html&quot;&gt;大奥&lt;/a&gt; 2008-05-11&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/29807875.html&quot;&gt;结项&lt;/a&gt; 2008-10-01&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/26513376.html&quot;&gt;ssh传送数据&lt;/a&gt; 2008-07-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/18104679.html&quot;&gt;SICP-2.17 solution&lt;/a&gt; 2008-04-02&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/8152029.html&quot;&gt;关于Scheme，壹&lt;/a&gt; 2007-09-07&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://icity.cn&quot; target=&quot;_blank&quot;&gt;《城客》：第一本中文互动杂志！&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fpanxz.blogbus.com%2Flogs%2F39146520.html&amp;title=twilight%E4%B9%8B%E6%A3%92%E7%90%83&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/panxz_blogbus_com/240784282/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/panxz_blogbus_com/240784282/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://panxz.blogbus.com/c/">未分类</category><pubDate>Sat, 09 May 2009 17:35:50 +0800</pubDate><guid isPermaLink="false">http://panxz.blogbus.com/logs/39146520.html</guid><dc:creator>老潘</dc:creator><fs:srclink>http://panxz.blogbus.com/logs/39146520.html</fs:srclink><fs:srcfeed>http://panxz.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/panxz_blogbus_com/~6926543/240784282/5034455</fs:itemid></item><item><title>原谅自己</title><link atom:type="text/html">http://panxz.blogbus.com/logs/37729436.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>老潘</name></author><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/logs/37729436.html</id><description>&lt;p&gt;老潘总在独自运动时，比如在进行&lt;a href=&quot;http://panxz.blogbus.com/logs/6592054.html&quot; target=&quot;_blank&quot;&gt;跑步&lt;/a&gt;或者跳绳这种乏味的小学低年级活动时，脑海中产生一些很深刻的见解。这充分证明了老潘其实是个想保持阳光运动形象的宅男，或者说老潘是个富于哲理勤于思考的明日体坛之星，whatever，你知道我在搞笑就行。&lt;/p&gt;
&lt;p&gt;不过今天不知道为什么想到了&amp;ldquo;对事不对人&amp;rdquo;这句话。说起来我一直不太容易原谅自己做过的蠢事。与其说完美主义，倒不如说是两个原因：1、脸皮薄；2、放不下。尤其是用事后明白的眼光去看当时的行径，经常让我无地自容。但所谓人非圣贤，孰能无过；纵然牛逼，也得犯错。我十分想给自己找辙，宽恕自己，不再背着过去这些包袱，在本已健康的人生上更加彪悍一把。如果我能有一种超能力，&amp;ldquo;选择性遗忘&amp;rdquo;确实很有吸引力，大概能排在前三吧。&lt;/p&gt;
&lt;p&gt;所以我想恬不知耻的跟自己说：你已经做得不错了，不要老想过去那些没用的事儿了。往前看。当你觉得惭愧时，看看那些比你更加傻逼的人，你就会欣然向前的。&lt;/p&gt;
&lt;p&gt;说起来，这些日子集中精力在做一件事，实在腾不出时间来看计算机书了啊。但我一有空就会继续的。&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/41899197.html&quot;&gt;搬迁/Migration&lt;/a&gt; 2009-07-04&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/39500242.html&quot;&gt;大家动作好快啊！！！&lt;/a&gt; 2009-05-16&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/37934432.html&quot;&gt;Lingoes未公布的快捷键&lt;/a&gt; 2009-03-10&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33321936.html&quot;&gt;变化&lt;/a&gt; 2009-01-02&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/29807875.html&quot;&gt;结项&lt;/a&gt; 2008-10-01&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://icity.cn&quot; target=&quot;_blank&quot;&gt;《城客》：第一本中文互动杂志！&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fpanxz.blogbus.com%2Flogs%2F37729436.html&amp;title=%E5%8E%9F%E8%B0%85%E8%87%AA%E5%B7%B1&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/panxz_blogbus_com/240784283/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/panxz_blogbus_com/240784283/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://panxz.blogbus.com/c/">未分类</category><pubDate>Fri, 10 Apr 2009 22:20:49 +0800</pubDate><guid isPermaLink="false">http://panxz.blogbus.com/logs/37729436.html</guid><dc:creator>老潘</dc:creator><fs:srclink>http://panxz.blogbus.com/logs/37729436.html</fs:srclink><fs:srcfeed>http://panxz.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/panxz_blogbus_com/~6926543/240784283/5034455</fs:itemid></item><item><title>Lingoes未公布的快捷键</title><link atom:type="text/html">http://panxz.blogbus.com/logs/37934432.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>老潘</name></author><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/logs/37934432.html</id><description>&lt;p&gt;本人偶然发现的两个Lingoes快捷键，感觉还是有些用处的。奇怪的是我在任何地方都没发现相关说明。也许是Lingoes所使用的GUI Framework提供的功能吧。。。&lt;/p&gt;
&lt;p&gt;Ctrl+Enter&lt;/p&gt;
&lt;p&gt;在主窗口中，当光标位于输入框时，这个组合键使Lingoes显示与当前输入字母组合匹配最好的字典条目。这使你不必输入完整的单词即可查询。举个例子，如果你输入zephy，Lingoes会显示zephyr但是如果你直接按Enter会一无所获。原因是没有完整匹配的条目可供显示。这时如想偷懒键入Ctrl+Enter即可。&lt;/p&gt;
&lt;p&gt;在鼠标/剪贴板浮动查词窗口中，当光标位于输入框时，此组合键将所查条目移入主窗口查询。试试便知。&lt;/p&gt;
&lt;p&gt;Ctrl+Z &lt;/p&gt;
&lt;p&gt;这可真是个。。。划时代的大发现。。。太有用了。在主窗口中查词完成后，Ctrl+Z使光标回到输入框中并在输入框中显示并选中上一条输入。关键是使光标回到输入框中这个副作用很有用。。。对于我这个键盘狂人来说。。。&lt;/p&gt;
&lt;p&gt;且慢，我还发现n多其他组合键也有这个副作用，但都伴随一声warning。比如Ctrl+M, Ctrl+Q等等。我怀疑是GUI Framework尝试将组合键的字符值放入输入框所导致的。&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/41899197.html&quot;&gt;搬迁/Migration&lt;/a&gt; 2009-07-04&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/39500242.html&quot;&gt;大家动作好快啊！！！&lt;/a&gt; 2009-05-16&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/37729436.html&quot;&gt;原谅自己&lt;/a&gt; 2009-04-10&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33321936.html&quot;&gt;变化&lt;/a&gt; 2009-01-02&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/29807875.html&quot;&gt;结项&lt;/a&gt; 2008-10-01&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://zhuanti.blogbus.com/kfc20/article/list&quot; target=&quot;_blank&quot;&gt;上海肯德基20年Say Yes-光阴的故事&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fpanxz.blogbus.com%2Flogs%2F37934432.html&amp;title=Lingoes%E6%9C%AA%E5%85%AC%E5%B8%83%E7%9A%84%E5%BF%AB%E6%8D%B7%E9%94%AE&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/panxz_blogbus_com/240784284/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/panxz_blogbus_com/240784284/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://panxz.blogbus.com/c/">未分类</category><pubDate>Tue, 10 Mar 2009 22:22:44 +0800</pubDate><guid isPermaLink="false">http://panxz.blogbus.com/logs/37934432.html</guid><dc:creator>老潘</dc:creator><fs:srclink>http://panxz.blogbus.com/logs/37934432.html</fs:srclink><fs:srcfeed>http://panxz.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/panxz_blogbus_com/~6926543/240784284/5034455</fs:itemid></item><item><title>需要lazy evaluation的一个例子</title><link atom:type="text/html">http://panxz.blogbus.com/logs/34584560.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>老潘</name></author><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/logs/34584560.html</id><description>&lt;p&gt;why functional programming matters里看来的例子，改成了Scheme版本。&lt;/p&gt;
&lt;p&gt;占个位子。等SICP做到第四章，搞出LE，这个就可以解决了。&lt;/p&gt;
&lt;p&gt;(define (within eps lst)&lt;br /&gt;&amp;nbsp; (let ((a (car lst))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (b (cadr lst)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (&amp;lt;= (abs (- a b)) eps)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (within eps (cdr lst)))))&lt;br /&gt;&lt;br /&gt;(define (repeat f a)&lt;br /&gt;&amp;nbsp; (cons a (repeat f (f a))))&lt;br /&gt;&lt;br /&gt;(define (square-root guess eps n)&lt;br /&gt;&amp;nbsp; (within esp (repeat&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (lambda (x) (/ (+ x (/ n x)) 2))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; guess)))&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33055956.html&quot;&gt;data-directed与message passing，及OO&lt;/a&gt; 2008-12-28&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33206422.html&quot;&gt;SICP-2.82 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33199470.html&quot;&gt;SICP-2.81 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33190348.html&quot;&gt;SICP-2.80 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33188663.html&quot;&gt;SICP-2.79 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://icity.cn&quot; target=&quot;_blank&quot;&gt;《城客》：第一本中文互动杂志！&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fpanxz.blogbus.com%2Flogs%2F34584560.html&amp;title=%E9%9C%80%E8%A6%81lazy+evaluation%E7%9A%84%E4%B8%80%E4%B8%AA%E4%BE%8B%E5%AD%90&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/panxz_blogbus_com/240784285/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/panxz_blogbus_com/240784285/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://panxz.blogbus.com/c/">未分类</category><pubDate>Tue, 03 Feb 2009 22:32:57 +0800</pubDate><guid isPermaLink="false">http://panxz.blogbus.com/logs/34584560.html</guid><dc:creator>老潘</dc:creator><fs:srclink>http://panxz.blogbus.com/logs/34584560.html</fs:srclink><fs:srcfeed>http://panxz.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/panxz_blogbus_com/~6926543/240784285/5034455</fs:itemid></item><item><title>变化</title><link atom:type="text/html">http://panxz.blogbus.com/logs/33321936.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>老潘</name></author><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/logs/33321936.html</id><description>&lt;p&gt;老潘的记录已经彻底跟不上了生活的变数了，于是干脆就不怎么写了。就像这次去美国，索性连相机都不带，一身轻松。反正生活的精彩都留在记忆里；处心积虑的想带走风景，无论如何也是不可能的。&lt;/p&gt;
&lt;p&gt;这些其实是我生活态度发生变化的一些表现而已。比起过去我更加活在当下。&lt;/p&gt;
&lt;p&gt;08年过去了。跟以往不同，我好像没有任何放不下。也许是这一年太充实了，我过得非常满意。&lt;/p&gt;
&lt;p&gt;第一次在程序员杂志上发表文章：刚过去的08年12期。如果你看到有一个脖子上挂着白色森海PX200人傻笑，并且说他喜欢Python和Scheme，还是Vim的忠实用户，那就是在下了。&lt;/p&gt;
&lt;p&gt;今年我有4个月呆在欧洲和美国，感受了不同的人和思想，也略微体会了一把不同的生活方式。最重要的是，在挣扎了几年之后，经历了许多的我，重新获得了坚定的理想，和敢于梦想的自由的心！&lt;/p&gt;
&lt;p&gt;之后的十年，我都不为踌躇理想而发愁了。 &lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/41899197.html&quot;&gt;搬迁/Migration&lt;/a&gt; 2009-07-04&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/39500242.html&quot;&gt;大家动作好快啊！！！&lt;/a&gt; 2009-05-16&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/37729436.html&quot;&gt;原谅自己&lt;/a&gt; 2009-04-10&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/37934432.html&quot;&gt;Lingoes未公布的快捷键&lt;/a&gt; 2009-03-10&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/29807875.html&quot;&gt;结项&lt;/a&gt; 2008-10-01&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://icity.cn&quot; target=&quot;_blank&quot;&gt;《城客》：第一本中文互动杂志！&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fpanxz.blogbus.com%2Flogs%2F33321936.html&amp;title=%E5%8F%98%E5%8C%96&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/panxz_blogbus_com/240784286/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/panxz_blogbus_com/240784286/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://panxz.blogbus.com/c/">未分类</category><pubDate>Fri, 02 Jan 2009 22:27:30 +0800</pubDate><guid isPermaLink="false">http://panxz.blogbus.com/logs/33321936.html</guid><dc:creator>老潘</dc:creator><fs:srclink>http://panxz.blogbus.com/logs/33321936.html</fs:srclink><fs:srcfeed>http://panxz.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/panxz_blogbus_com/~6926543/240784286/5034455</fs:itemid></item><item><title>SICP-2.82 solution</title><link atom:type="text/html">http://panxz.blogbus.com/logs/33206422.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>老潘</name></author><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/logs/33206422.html</id><description>&lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;(define (apply-generic op . args)&lt;br /&gt;&amp;nbsp; (let* ((type-tags (map type-tag args))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (proc (get op type-tags)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if proc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (apply proc (map contents args))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; if no operation found, we try to coerce the arguments to the type of&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; each one of them, starting from the first&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (let* ((get-coercion-procs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; get-coercion-procs gives a list of coercion procedures&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; targeting one specific type, if possible&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (lambda (target-type)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (map&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (lambda (arg-type)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (eq? arg-type target-type)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; if the types are the same, return the identity function&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; identity&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; if not, get the coercion function. can be null&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (get-coercion arg-type target-type)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type-tags))))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (define (type-tags-iter type-tags)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (not (empty? type-tags))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (let (coercion-procs (get-coercion-procs (car type-tags)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (not (member? null coercion-procs))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; successful coercion&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (apply-generic op (map apply coercion-procs args))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; failed to coerce everything. next round&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (type-tags-iter (cdr type-tags))))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; if type-tags is empty, we have tried the type of the last argument&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (error &amp;quot;No method for these types&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (list op type-tags))))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (type-tags-iter type-tags)))))&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;This method is not general enough when the arguments do have a common ancestor but the ancestor type does not show up in the arguments, thus we can miss it.&lt;br /&gt;&lt;br /&gt;An example can be (triangle kite) in figure 2.26. They can both be coerced to polygon but we'll miss it.&lt;br /&gt;&lt;/font&gt;&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/34584560.html&quot;&gt;需要lazy evaluation的一个例子&lt;/a&gt; 2009-02-03&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33199470.html&quot;&gt;SICP-2.81 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33190348.html&quot;&gt;SICP-2.80 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33188663.html&quot;&gt;SICP-2.79 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33186408.html&quot;&gt;SICP-2.78 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://zhuanti.blogbus.com/kfc20/article/list&quot; target=&quot;_blank&quot;&gt;上海肯德基20年Say Yes-光阴的故事&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fpanxz.blogbus.com%2Flogs%2F33206422.html&amp;title=SICP-2.82+solution&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/panxz_blogbus_com/240784287/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/panxz_blogbus_com/240784287/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://panxz.blogbus.com/c/">未分类</category><pubDate>Wed, 31 Dec 2008 15:55:15 +0800</pubDate><guid isPermaLink="false">http://panxz.blogbus.com/logs/33206422.html</guid><dc:creator>老潘</dc:creator><fs:srclink>http://panxz.blogbus.com/logs/33206422.html</fs:srclink><fs:srcfeed>http://panxz.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/panxz_blogbus_com/~6926543/240784287/5034455</fs:itemid></item><item><title>SICP-2.81 solution</title><link atom:type="text/html">http://panxz.blogbus.com/logs/33199470.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>老潘</name></author><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/logs/33199470.html</id><description>&lt;font face=&quot;Courier New&quot;&gt;; Current apply-generic is not bullet-proof: it first tries to get the correct&lt;br /&gt;; operation based on op and type-tags. Only when it fails this step, it tries&lt;br /&gt;; coercion. So the scenario Louis Reasoner described only happens when an&lt;br /&gt;; operation is not registered/installed, thus cannot be found, for 2 numbers of&lt;br /&gt;; the same type.&lt;br /&gt;(define (apply-generic op . args)&lt;br /&gt;&amp;nbsp; (let ((type-tags (map type-tag args)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (let ((proc (get op type-tags)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if proc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (apply proc (map contents args))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (= (length args) 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (let ((type1 (car type-tags))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (type2 (cadr type-tags))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (a1 (car args))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (a2 (cadr args)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (let ((t1-&amp;gt;t2 (get-coercion type1 type2))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (t2-&amp;gt;t1 (get-coercion type2 type1)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cond (t1-&amp;gt;t2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (apply-generic op (t1-&amp;gt;t2 a1) a2))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (t2-&amp;gt;t1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (apply-generic op a1 (t2-&amp;gt;t1 a2)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (error &amp;quot;No method for these types&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (list op type-tags))))))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (error &amp;quot;No method for these types&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (list op type-tags)))))))&lt;br /&gt;&lt;br /&gt;; a. Such a call incurs an infinite recursion. Since the exp operation for 2&lt;br /&gt;; complex numbers is not installed, apply-generic can't find anything in its&lt;br /&gt;; first attempt. Then it tries to coerce the 2 arguments in both ways and&lt;br /&gt;; succeeds immediately, thanks to Louis' installation. But then it's back to&lt;br /&gt;; where it started.&lt;br /&gt;; b. No he's wrong. If the operation of 2 same typed&lt;br /&gt;; operands cannot be found, then let it be, give some errors. Don't try&lt;br /&gt;; coercion since it doesn't change anything in this case.&lt;br /&gt;; c.&lt;br /&gt;(define (apply-generic op . args)&lt;br /&gt;&amp;nbsp; (let ((type-tags (map type-tag args)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (let ((proc (get op type-tags)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if proc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (apply proc (map contents args))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (= (length args) 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (let ((type1 (car type-tags))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (type2 (cadr type-tags)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (if (not (eq? type1 type2))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (let ((a1 (car args))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (a2 (cadr args))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (t1-&amp;gt;t2 (get-coercion type1 type2))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (t2-&amp;gt;t1 (get-coercion type2 type1)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (cond (t1-&amp;gt;t2&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (apply-generic op (t1-&amp;gt;t2 a1) a2))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (t2-&amp;gt;t1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (apply-generic op a1 (t2-&amp;gt;t1 a2)))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (error &amp;quot;No method for these types&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (list op type-tags)))))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (error &amp;quot;No method for these types&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (list op type-tags))))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (error &amp;quot;No method for these types&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (list op type-tags)))))))&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/34584560.html&quot;&gt;需要lazy evaluation的一个例子&lt;/a&gt; 2009-02-03&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33206422.html&quot;&gt;SICP-2.82 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33190348.html&quot;&gt;SICP-2.80 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33188663.html&quot;&gt;SICP-2.79 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33186408.html&quot;&gt;SICP-2.78 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://zhuanti.blogbus.com/kfc20/article/list&quot; target=&quot;_blank&quot;&gt;上海肯德基20年Say Yes-光阴的故事&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fpanxz.blogbus.com%2Flogs%2F33199470.html&amp;title=SICP-2.81+solution&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/panxz_blogbus_com/240784288/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/panxz_blogbus_com/240784288/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://panxz.blogbus.com/c/">未分类</category><pubDate>Wed, 31 Dec 2008 13:41:49 +0800</pubDate><guid isPermaLink="false">http://panxz.blogbus.com/logs/33199470.html</guid><dc:creator>老潘</dc:creator><fs:srclink>http://panxz.blogbus.com/logs/33199470.html</fs:srclink><fs:srcfeed>http://panxz.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/panxz_blogbus_com/~6926543/240784288/5034455</fs:itemid></item><item><title>SICP-2.80 solution</title><link atom:type="text/html">http://panxz.blogbus.com/logs/33190348.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>老潘</name></author><id xmlns="http://www.w3.org/2005/Atom">http://panxz.blogbus.com/logs/33190348.html</id><description>&lt;font face=&quot;Courier New&quot;&gt;;; data-directed version&lt;br /&gt;&lt;br /&gt;; generic zero? for all numbers&lt;br /&gt;(define (zero? x) (apply-generic 'zero? x))&lt;br /&gt;&lt;br /&gt;; inside scheme-number/rational/complex packages. note that we don't need to tag because the result is boolean&lt;br /&gt;(put 'zero? '(scheme-number) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (lambda (x) (= x 0)))&lt;br /&gt;(put 'zero? '(rational)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (lambda (x) (= (numer x) 0)))&lt;br /&gt;; delegate to lower layer, or we should say, the sub packages&lt;br /&gt;(put 'zero? '(complex) zero?)&lt;br /&gt;&lt;br /&gt;; generic zero? for all complex&lt;br /&gt;(define (zero?-complex x) (apply-generic 'zero? x))&lt;br /&gt;&lt;br /&gt;; inside polar/rectangular packages. note that we don't need to tag because the result is boolean&lt;br /&gt;(put 'zero? '(polar)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (lambda (z) (= (magnitude z) 0)))&lt;br /&gt;(put 'zero? '(rectangular)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (lambda (z) (and (= (real-part z) 0) (= (imag-part z) 0))))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/34584560.html&quot;&gt;需要lazy evaluation的一个例子&lt;/a&gt; 2009-02-03&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33206422.html&quot;&gt;SICP-2.82 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33199470.html&quot;&gt;SICP-2.81 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33188663.html&quot;&gt;SICP-2.79 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://panxz.blogbus.com/logs/33186408.html&quot;&gt;SICP-2.78 solution&lt;/a&gt; 2008-12-31&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://icity.cn&quot; target=&quot;_blank&quot;&gt;《城客》：第一本中文互动杂志！&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fpanxz.blogbus.com%2Flogs%2F33190348.html&amp;title=SICP-2.80+solution&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/panxz_blogbus_com/240784289/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/panxz_blogbus_com/240784289/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://panxz.blogbus.com/c/">未分类</category><pubDate>Wed, 31 Dec 2008 11:46:21 +0800</pubDate><guid isPermaLink="false">http://panxz.blogbus.com/logs/33190348.html</guid><dc:creator>老潘</dc:creator><fs:srclink>http://panxz.blogbus.com/logs/33190348.html</fs:srclink><fs:srcfeed>http://panxz.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/panxz_blogbus_com/~6926543/240784289/5034455</fs:itemid></item></channel></rss>