<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>B-LOG</title>
	<atom:link href="http://blog.bugyo.tk/b-log/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.bugyo.tk/b-log</link>
	<description>bugyoのlog。決してblogではない。</description>
	<lastBuildDate>Sun, 29 Apr 2012 15:24:17 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>[Lisp] Common LispとSchemeの関数対応表</title>
		<link>http://blog.bugyo.tk/b-log/archives/822</link>
		<comments>http://blog.bugyo.tk/b-log/archives/822#comments</comments>
		<pubDate>Tue, 22 Nov 2011 06:32:54 +0000</pubDate>
		<dc:creator>bugyo</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[Common Lisp]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Scheme]]></category>
		<category><![CDATA[対応表]]></category>

		<guid isPermaLink="false">http://blog.bugyo.tk/b-log/?p=822</guid>
		<description><![CDATA[Common Lispの関数やマクロと対応する機能を持つSchemeの手続きや構文を表にまとめる． 随時更新． Common Lisp Scheme 備考 atom なし (not (pair? obj))を使う con [...]]]></description>
			<content:encoded><![CDATA[<p>Common Lispの関数やマクロと対応する機能を持つSchemeの手続きや構文を表にまとめる．</p>
<p>随時更新．</p>
<table border="">
<tbody>
<tr>
<th>Common Lisp</th>
<th>Scheme</th>
<th>備考</th>
</tr>
<tr>
<td>atom</td>
<td>なし</td>
<td>(not (pair? obj))を使う</td>
</tr>
<tr>
<td>consp</td>
<td>pair?</td>
<td></td>
</tr>
<tr>
<td>dolist</td>
<td>for-each</td>
<td>記法は異なる</td>
</tr>
<tr>
<td>mapcan</td>
<td>append-map!</td>
<td> SRFI 1</td>
</tr>
<tr>
<td>mapcar</td>
<td>map</td>
<td></td>
</tr>
<tr>
<td>multiple-value-bind</td>
<td>receive</td>
<td>SRFI 8, library syntax</td>
</tr>
<tr>
<td>null</td>
<td>null?</td>
<td></td>
</tr>
<tr>
<td>nth</td>
<td>list-ref</td>
<td></td>
</tr>
<tr>
<td>nthcdr</td>
<td>list-tail</td>
<td>SRFI 1ではdrop</td>
</tr>
<tr>
<td>progn</td>
<td>begin</td>
<td></td>
</tr>
<tr>
<td>rplaca</td>
<td>set-car!</td>
<td></td>
</tr>
<tr>
<td>rplacd</td>
<td>set-cdr!</td>
<td></td>
</tr>
<tr>
<td>setq</td>
<td>set!</td>
<td></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://blog.bugyo.tk/b-log/archives/822/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[コマンド] rlwrap</title>
		<link>http://blog.bugyo.tk/b-log/archives/818</link>
		<comments>http://blog.bugyo.tk/b-log/archives/818#comments</comments>
		<pubDate>Wed, 16 Nov 2011 05:58:18 +0000</pubDate>
		<dc:creator>bugyo</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[read line]]></category>
		<category><![CDATA[readline]]></category>
		<category><![CDATA[rlwrap]]></category>
		<category><![CDATA[コマンド]]></category>

		<guid isPermaLink="false">http://blog.bugyo.tk/b-log/?p=818</guid>
		<description><![CDATA[GNU Rreadlineライブラリは入力の際の便利な機能を提供するライブラリ。これを使用したプログラムでは、入力の際にシェルのようなEmacsキーバインドでの移動や、履歴の呼び出し、カッコの対応の表示などの機能が使える [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html" title="The GNU Readline Library" target="_blank">GNU Rreadlineライブラリ</a>は入力の際の便利な機能を提供するライブラリ。これを使用したプログラムでは、入力の際にシェルのようなEmacsキーバインドでの移動や、履歴の呼び出し、カッコの対応の表示などの機能が使えるようになる。</p>
<p>rlwrapはreadlineを使用していないプログラムでもreadlineが使えるように入力をラップするコマンド。<br />
<a href="http://utopia.knoware.nl/~hlub/rlwrap/" title="http://utopia.knoware.nl/~hlub/rlwrap/" target="_blank">http://utopia.knoware.nl/~hlub/rlwrap/</a><br />
から入手できる。FreeBSDではportsにあった。</p>
<p>特にLispのREPLではカッコの対応がすぐわかってうれしい。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bugyo.tk/b-log/archives/818/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[並行計算][Scheme][Racket] SRFI 18のmutexとcondition variable</title>
		<link>http://blog.bugyo.tk/b-log/archives/799</link>
		<comments>http://blog.bugyo.tk/b-log/archives/799#comments</comments>
		<pubDate>Wed, 09 Nov 2011 12:15:18 +0000</pubDate>
		<dc:creator>bugyo</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[condition variable]]></category>
		<category><![CDATA[mutex]]></category>
		<category><![CDATA[Racket]]></category>
		<category><![CDATA[Scheme]]></category>
		<category><![CDATA[semaphore]]></category>
		<category><![CDATA[セマフォ]]></category>
		<category><![CDATA[並行処理]]></category>

		<guid isPermaLink="false">http://blog.bugyo.tk/b-log/?p=799</guid>
		<description><![CDATA[RacketはSRFI 18に対応していることになっているが、mutex-lock!やcondition-variable-signal!などどの手続きはrequireしても定義されない。 mutexやcondition [...]]]></description>
			<content:encoded><![CDATA[<p>RacketはSRFI 18に対応していることになっているが、mutex-lock!やcondition-variable-signal!などどの手続きはrequireしても定義されない。</p>
<p>mutexやcondition variableのような同期機構ではなく、チャネル通信などの機構を使えということなのだと思うが、ロックを使ったほうが素直に実装できる場合もある。</p>
<p>幸いセマフォはあるようなので、セマフォでmutexやcondition variableを次のように書いた。</p>

<div class="wp_syntax"><div class="code"><pre class="scheme" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">;;; mutex</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>mutex<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>semaphore <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>mutex<span style="color: #66cc66;">-</span>lock<span style="color: #66cc66;">!</span> m<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>semaphore<span style="color: #66cc66;">-</span>wait m<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>mutex<span style="color: #66cc66;">-</span>unlock<span style="color: #66cc66;">-</span>primitive<span style="color: #66cc66;">!</span> m<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>semaphore<span style="color: #66cc66;">-</span>post m<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>mutex<span style="color: #66cc66;">-</span>unlock<span style="color: #66cc66;">!</span> m . rest<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>condvar <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">null?</span> rest<span style="color: #66cc66;">&#41;</span> #f <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> rest<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>mutex<span style="color: #66cc66;">-</span>unlock<span style="color: #66cc66;">-</span>primitive<span style="color: #66cc66;">!</span> m<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>when condvar
      <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>wait<span style="color: #66cc66;">!</span> condvar<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;;; gate</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>gate<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>semaphore <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>gate<span style="color: #66cc66;">-</span>wait<span style="color: #66cc66;">!</span> g<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>semaphore<span style="color: #66cc66;">-</span>wait g<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>gate<span style="color: #66cc66;">-</span>signal<span style="color: #66cc66;">!</span> g<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>semaphore<span style="color: #66cc66;">-</span>post g<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">;;; condition variable</span>
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> 'condition<span style="color: #66cc66;">-</span>variable '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>mutex<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>gates cv<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list-ref</span> cv <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>mutex cv<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list-ref</span> cv <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>clear<span style="color: #66cc66;">-</span>gates<span style="color: #66cc66;">!</span> cv<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>set<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span><span style="color: #66cc66;">!</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> cv<span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>put<span style="color: #66cc66;">-</span>gates<span style="color: #66cc66;">!</span> cv val<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span>set<span style="color: #66cc66;">-</span><span style="color: #b1b100;">car</span><span style="color: #66cc66;">!</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> cv<span style="color: #66cc66;">&#41;</span>
	    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cons</span> val <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>gates cv<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>wait<span style="color: #66cc66;">!</span> cv<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>mutex <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>mutex cv<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span>gates <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>gates cv<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span>new<span style="color: #66cc66;">-</span>gate <span style="color: #66cc66;">&#40;</span>make<span style="color: #66cc66;">-</span>gate<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>mutex<span style="color: #66cc66;">-</span>lock<span style="color: #66cc66;">!</span> mutex<span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>put<span style="color: #66cc66;">-</span>gates<span style="color: #66cc66;">!</span> cv new<span style="color: #66cc66;">-</span>gate<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>mutex<span style="color: #66cc66;">-</span>unlock<span style="color: #66cc66;">-</span>primitive<span style="color: #66cc66;">!</span> mutex<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>gate<span style="color: #66cc66;">-</span>wait<span style="color: #66cc66;">!</span> new<span style="color: #66cc66;">-</span>gate<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>signal<span style="color: #66cc66;">!</span> cv<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>mutex <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>mutex cv<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span>gates <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>gates cv<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>mutex<span style="color: #66cc66;">-</span>lock<span style="color: #66cc66;">!</span> mutex<span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">for-each</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>g<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>gate<span style="color: #66cc66;">-</span>signal<span style="color: #66cc66;">!</span> g<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
		gates<span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#40;</span>condition<span style="color: #66cc66;">-</span>variable<span style="color: #66cc66;">-</span>clear<span style="color: #66cc66;">-</span>gates<span style="color: #66cc66;">!</span> cv<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>mutex<span style="color: #66cc66;">-</span>unlock<span style="color: #66cc66;">-</span>primitive<span style="color: #66cc66;">!</span> mutex<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>condition variableは使い捨てのmutexを用いて実装している。<br />
これで、同期に関してSRFI 18で定められた手続きが使える。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bugyo.tk/b-log/archives/799/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Scheme][Racket] set-car! set-cdr! が使えない</title>
		<link>http://blog.bugyo.tk/b-log/archives/794</link>
		<comments>http://blog.bugyo.tk/b-log/archives/794#comments</comments>
		<pubDate>Tue, 08 Nov 2011 10:45:23 +0000</pubDate>
		<dc:creator>bugyo</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[PLT Scheme]]></category>
		<category><![CDATA[Racket]]></category>
		<category><![CDATA[Scheme]]></category>

		<guid isPermaLink="false">http://blog.bugyo.tk/b-log/?p=794</guid>
		<description><![CDATA[racket コマンドで起動した Racket では set-car! や set-cdr! が定義されていなかった。 調べてみると Racket ではペアへの破壊的な代入を許さないらしい。 代わりに mcons という [...]]]></description>
			<content:encoded><![CDATA[<p>racket コマンドで起動した Racket では set-car! や set-cdr! が定義されていなかった。</p>
<p>調べてみると Racket ではペアへの破壊的な代入を許さないらしい。</p>
<p>代わりに mcons というデータ構造が用意されていてこちらは set-mcar! や set-mcdr! といった手続きで代入ができる。</p>
<p>R5RS に基づいて書かれた Scheme のプログラムを動かすにはペアを扱う手続きを mcons を使うものに定義し直す必要があるが、すでにそれをするパッケージが用意されている。</p>
<pre>
> (require r5rs)
</pre>
<p>とすると、set-car! や set-cdr! が定義され、cons で作ったペアに再代入できる。</p>
<p>参考: <a href="http://blog.racket-lang.org/2007/11/getting-rid-of-set-car-and-set-cdr.html">Getting rid of set-car! and set-cdr!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bugyo.tk/b-log/archives/794/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[数式処理][Scheme] 算術式を簡単にする</title>
		<link>http://blog.bugyo.tk/b-log/archives/775</link>
		<comments>http://blog.bugyo.tk/b-log/archives/775#comments</comments>
		<pubDate>Sun, 06 Nov 2011 04:13:56 +0000</pubDate>
		<dc:creator>bugyo</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[Scheme]]></category>
		<category><![CDATA[数式処理]]></category>
		<category><![CDATA[記号処理]]></category>

		<guid isPermaLink="false">http://blog.bugyo.tk/b-log/?p=775</guid>
		<description><![CDATA[微分などで複雑になった算術式を簡素化するには次のようにする。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3 [...]]]></description>
			<content:encoded><![CDATA[<p>微分などで複雑になった算術式を簡素化するには次のようにする。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
</pre></td><td class="code"><pre class="scheme" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>simple <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>flat lst op<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>append<span style="color: #66cc66;">-</span><span style="color: #b1b100;">map</span><span style="color: #66cc66;">!</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>
                   <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">pair?</span> x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> x<span style="color: #66cc66;">&#41;</span> op<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                       <span style="color: #66cc66;">&#40;</span>flat <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> x<span style="color: #66cc66;">&#41;</span> op<span style="color: #66cc66;">&#41;</span>
                       <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                 lst<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>constant<span style="color: #66cc66;">-</span>fold args init op<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>cf args num acc<span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">null?</span> args<span style="color: #66cc66;">&#41;</span>
             <span style="color: #66cc66;">&#40;</span>values acc num<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
            <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">number?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> args<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
             <span style="color: #66cc66;">&#40;</span>cf <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> args<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>op num <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> args<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> acc<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
            <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span>
             <span style="color: #66cc66;">&#40;</span>cf <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> args<span style="color: #66cc66;">&#41;</span> num <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">append</span><span style="color: #66cc66;">!</span> acc <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> args<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>cf args init '<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>simple<span style="color: #66cc66;">-+</span> args<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">set!</span> args <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">map</span> simple args<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">set!</span> args <span style="color: #66cc66;">&#40;</span>flat args '<span style="color: #66cc66;">+</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span>receive <span style="color: #66cc66;">&#40;</span>exps num<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span>constant<span style="color: #66cc66;">-</span>fold args <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">+</span><span style="color: #66cc66;">&#41;</span>
     <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">null?</span> exps<span style="color: #66cc66;">&#41;</span> num<span style="color: #66cc66;">&#41;</span>
           <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span> `<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> ,@args num<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>simple<span style="color: #66cc66;">-*</span> args<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">call/cc</span>
     <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>c<span style="color: #66cc66;">&#41;</span>
       <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">set!</span> args <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">map</span> simple args<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
       <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">set!</span> args <span style="color: #66cc66;">&#40;</span>flat args '<span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
       <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">map</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>
              <span style="color: #66cc66;">&#40;</span>when <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">number?</span> x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> x <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                    <span style="color: #66cc66;">&#40;</span>c <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
            args<span style="color: #66cc66;">&#41;</span>
       <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">set!</span> args <span style="color: #66cc66;">&#40;</span>constant<span style="color: #66cc66;">-</span>fold args <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
       <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">set!</span> args <span style="color: #66cc66;">&#40;</span>remove <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span>
                            <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">number?</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> x <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                          args<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
       <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">length</span> args<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
           <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> args<span style="color: #66cc66;">&#41;</span>
           `<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> ,@args<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>simple<span style="color: #66cc66;">-</span><span style="color: #b1b100;">expt</span> base ex<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">set!</span> base <span style="color: #66cc66;">&#40;</span>simple base<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">set!</span> ex <span style="color: #66cc66;">&#40;</span>simple ex<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">or</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">number?</span> base<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> base <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
               <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">number?</span> ex<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> ex <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
           <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
          <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">or</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">number?</span> base<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> base <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
               <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">number?</span> ex<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">=</span> ex <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
           base<span style="color: #66cc66;">&#41;</span>
          <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span>
           `<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">expt</span> ,base ,ex<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>simple<span style="color: #66cc66;">--</span> arg<span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">number?</span> arg<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> arg<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
          <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">pair?</span> arg<span style="color: #66cc66;">&#41;</span>
                <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> arg<span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">+</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
           <span style="color: #66cc66;">&#40;</span>simple<span style="color: #66cc66;">-+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">map</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> '<span style="color: #66cc66;">-</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                          <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> arg<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
          <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">and</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">pair?</span> arg<span style="color: #66cc66;">&#41;</span>
                <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> arg<span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
           <span style="color: #66cc66;">&#40;</span>simple<span style="color: #66cc66;">-*</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">map</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">lambda</span> <span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">list</span> '<span style="color: #66cc66;">-</span> x<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
                          <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> arg<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
          <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span>
           `<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> ,arg<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
&nbsp;
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">not</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">pair?</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">-</span><span style="color: #66cc66;">&#41;</span>
         <span style="color: #66cc66;">&#40;</span>simple<span style="color: #66cc66;">--</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">+</span><span style="color: #66cc66;">&#41;</span>
         <span style="color: #66cc66;">&#40;</span>simple<span style="color: #66cc66;">-+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span>
         <span style="color: #66cc66;">&#40;</span>simple<span style="color: #66cc66;">-*</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #b1b100;">expt</span><span style="color: #66cc66;">&#41;</span>
         <span style="color: #66cc66;">&#40;</span>simple<span style="color: #66cc66;">-</span><span style="color: #b1b100;">expt</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">caddr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span>
         `<span style="color: #66cc66;">&#40;</span>,<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> ,@<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">map</span> simple <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cdr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<pre>
> (simple (deriv '(expt (* (sin x) (cos x)) 1/2) 'x))
=> (* (expt (* (sin x) (cos x)) -1/2) (+ (* (cos x) (cos x)) (* (sin x) (- (sin x)))) 1/2)
</pre>
<p>`-&#8217; 演算子は単項演算子としてのみ使える。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bugyo.tk/b-log/archives/775/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[数式処理][Scheme] 微分する</title>
		<link>http://blog.bugyo.tk/b-log/archives/772</link>
		<comments>http://blog.bugyo.tk/b-log/archives/772#comments</comments>
		<pubDate>Sun, 06 Nov 2011 04:09:32 +0000</pubDate>
		<dc:creator>bugyo</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[Scheme]]></category>
		<category><![CDATA[数式処理]]></category>
		<category><![CDATA[記号処理]]></category>

		<guid isPermaLink="false">http://blog.bugyo.tk/b-log/?p=772</guid>
		<description><![CDATA[複雑な微分をするときは計算機に任せた方が良いように思う。 Scheme で微分するには次のようにする。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 [...]]]></description>
			<content:encoded><![CDATA[<p>複雑な微分をするときは計算機に任せた方が良いように思う。</p>
<p>Scheme で微分するには次のようにする。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="scheme" style="font-family:monospace;"><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">define</span> <span style="color: #66cc66;">&#40;</span>deriv <span style="color: #b1b100;">exp</span> var<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cond</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #b1b100;">exp</span> var<span style="color: #66cc66;">&#41;</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">not</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">pair?</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">-</span><span style="color: #66cc66;">&#41;</span>
	 `<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> ,<span style="color: #66cc66;">&#40;</span>deriv <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> var<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">+</span><span style="color: #66cc66;">&#41;</span>
	 `<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> ,<span style="color: #66cc66;">&#40;</span>deriv <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> var<span style="color: #66cc66;">&#41;</span> ,<span style="color: #66cc66;">&#40;</span>deriv <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">caddr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> var<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span>
	 `<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> ,<span style="color: #66cc66;">&#40;</span>deriv <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> var<span style="color: #66cc66;">&#41;</span>
		,<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">caddr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	     <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> ,<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span>
		,<span style="color: #66cc66;">&#40;</span>deriv <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">caddr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> var<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #b1b100;">expt</span><span style="color: #66cc66;">&#41;</span>
	 <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">let</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>g <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	       <span style="color: #66cc66;">&#40;</span>n <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">caddr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	   `<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> ,n <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">expt</span> ,g ,<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> n <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> ,<span style="color: #66cc66;">&#40;</span>deriv g var<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #b1b100;">sin</span><span style="color: #66cc66;">&#41;</span>
	 `<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cos</span> ,<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> ,<span style="color: #66cc66;">&#40;</span>deriv <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> var<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #b1b100;">cos</span><span style="color: #66cc66;">&#41;</span>
	 `<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">-</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">sin</span> ,<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> ,<span style="color: #66cc66;">&#40;</span>deriv <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> var<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">eq?</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">car</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> '<span style="color: #b1b100;">tan</span><span style="color: #66cc66;">&#41;</span>
         `<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">+</span> <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">expt</span> ,<span style="color: #b1b100;">exp</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> ,<span style="color: #66cc66;">&#40;</span>deriv <span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">cadr</span> <span style="color: #b1b100;">exp</span><span style="color: #66cc66;">&#41;</span> var<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#40;</span><span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#40;</span>error <span style="color: #ff0000;">&quot;not yet.&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></td></tr></table></div>

<pre>
> (deriv '(expt (* (sin x) (cos x)) 1/2)) 'x)
=> (* (* 1/2
         (expt (* (sin x) (cos x)) -1/2))
      (+ (* (* (cos x) 1)
	    (cos x))
         (* (sin x)
	    (* (- (sin x)) 1))))
</pre>
<p>`-&#8217; 演算子は単項演算子としてのみ使える。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bugyo.tk/b-log/archives/772/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Scheme][Racket] 相対パスでロード</title>
		<link>http://blog.bugyo.tk/b-log/archives/766</link>
		<comments>http://blog.bugyo.tk/b-log/archives/766#comments</comments>
		<pubDate>Tue, 01 Nov 2011 14:36:01 +0000</pubDate>
		<dc:creator>bugyo</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[Racket]]></category>
		<category><![CDATA[Scheme]]></category>

		<guid isPermaLink="false">http://blog.bugyo.tk/b-log/?p=766</guid>
		<description><![CDATA[Racketで相対パスを用いてロードする際の注意。 load で相対パスを使った場合は current-directory (デフォルトでは実行パス)を基点にロードパスが決まる。 ただ、&#8221;./filename [...]]]></description>
			<content:encoded><![CDATA[<p>Racketで相対パスを用いてロードする際の注意。</p>
<p>load で相対パスを使った場合は current-directory (デフォルトでは実行パス)を基点にロードパスが決まる。</p>
<p>ただ、&#8221;./filename&#8221; や &#8220;../filename&#8221; といった形式は使えなかった。<br />
current-directory と結合してOSに丸投げするだけでいいのに、信じられない。</p>
<p>ロードされているファイルからそのファイルのあるディレクトリを基点に相対パスでロードする場合は load-relative を用いる。</p>
<pre>
 (load-relative "relative-path")
</pre>
<p>その際、基点となるディレクトリは current-load-relative-directory 関数で取得できる。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bugyo.tk/b-log/archives/766/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[JavaScript] Base64のデコード</title>
		<link>http://blog.bugyo.tk/b-log/archives/762</link>
		<comments>http://blog.bugyo.tk/b-log/archives/762#comments</comments>
		<pubDate>Sun, 30 Oct 2011 16:16:11 +0000</pubDate>
		<dc:creator>bugyo</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[Base64]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[デコード]]></category>

		<guid isPermaLink="false">http://blog.bugyo.tk/b-log/?p=762</guid>
		<description><![CDATA[JavaScriptでBase64をデコードするには次のように書く。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28  [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScriptでBase64をデコードするには次のように書く。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> b64_table <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>00'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>01'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>02'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>03'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>04'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>05'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>06'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>07'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>08'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>09'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>0A'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>0B'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>0C'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>0D'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>0E'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>0F'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>10'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>11'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>12'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>13'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>14'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>15'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>16'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>17'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>18'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>19'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>1A'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>1B'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>1C'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>1D'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>1E'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>1F'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>20'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>21'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>22'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>23'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>24'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>25'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>26'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>27'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>28'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>29'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>2A'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>2B'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>2C'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>2D'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>2E'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>2F'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>30'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>31'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>32'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>33'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>34'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>35'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>36'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>37'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>38'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>39'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>3A'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>3B'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>3C'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>3D'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>3E'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>3F'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>40'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>41'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>42'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>43'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>44'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>45'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>46'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>47'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>48'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>49'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>4A'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>4B'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>4C'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>4D'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>4E'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>4F'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>50'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>51'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>52'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>53'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>54'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>55'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>56'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>57'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>58'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>59'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>5A'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>5B'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>5C'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>5D'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>5E'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>5F'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>60'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>61'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>62'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>63'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>64'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>65'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>66'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>67'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>68'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>69'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>6A'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>6B'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>6C'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>6D'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>6E'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>6F'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>70'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>71'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>72'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>73'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>74'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>75'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>76'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>77'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>78'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>79'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>7A'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>7B'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>7C'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>7D'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>7E'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>7F'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>80'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>81'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>82'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>83'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>84'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>85'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>86'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>87'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>88'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>89'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>8A'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>8B'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>8C'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>8D'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>8E'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>8F'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>90'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>91'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>92'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>93'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>94'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>95'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>96'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>97'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>98'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>99'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>9A'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>9B'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>9C'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>9D'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>9E'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>9F'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>A0'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>A1'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>A2'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>A3'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>A4'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>A5'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>A6'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>A7'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>A8'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>A9'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>AA'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>AB'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>AC'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>AD'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>AE'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>AF'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>B0'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>B1'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>B2'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>B3'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>B4'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>B5'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>B6'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>B7'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>B8'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>B9'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>BA'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>BB'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>BC'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>BD'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>BE'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>BF'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>C0'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>C1'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>C2'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>C3'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>C4'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>C5'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>C6'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>C7'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>C8'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>C9'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>CA'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>CB'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>CC'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>CD'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>CE'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>CF'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>D0'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>D1'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>D2'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>D3'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>D4'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>D5'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>D6'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>D7'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>D8'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>D9'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>DA'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>DB'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>DC'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>DD'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>DE'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>DF'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>E0'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>E1'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>E2'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>E3'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>E4'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>E5'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>E6'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>E7'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>E8'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>E9'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>EA'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>EB'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>EC'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>ED'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>EE'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>EF'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>F0'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>F1'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>F2'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>F3'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>F4'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>F5'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>F6'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>F7'</span><span style="color: #339933;">,</span>
    <span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>F8'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>F9'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>FA'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>FB'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>FC'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>FD'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>FE'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'<span style="color: #000099; font-weight: bold;">\x</span>FF'</span>
<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> b64_decode_char<span style="color: #009900;">&#40;</span>c<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'A'</span> <span style="color: #339933;">&lt;=</span> c <span style="color: #339933;">&amp;&amp;</span> c <span style="color: #339933;">&lt;=</span> <span style="color: #3366CC;">'Z'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> c.<span style="color: #660066;">charCodeAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #3366CC;">'A'</span>.<span style="color: #660066;">charCodeAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'a'</span> <span style="color: #339933;">&lt;=</span> c <span style="color: #339933;">&amp;&amp;</span> c <span style="color: #339933;">&lt;=</span> <span style="color: #3366CC;">'z'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> c.<span style="color: #660066;">charCodeAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #3366CC;">'a'</span>.<span style="color: #660066;">charCodeAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">26</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'0'</span> <span style="color: #339933;">&lt;=</span> c <span style="color: #339933;">&amp;&amp;</span> c <span style="color: #339933;">&lt;=</span> <span style="color: #3366CC;">'9'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> c.<span style="color: #660066;">charCodeAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #3366CC;">'0'</span>.<span style="color: #660066;">charCodeAt</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">52</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> <span style="color: #3366CC;">'+'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #CC0000;">62</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> <span style="color: #3366CC;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #CC0000;">63</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> <span style="color: #3366CC;">'='</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    error<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;invalid base64 character. &quot;</span> <span style="color: #339933;">+</span> c<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> b64_decode<span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> decoded <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>str.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">+=</span><span style="color: #CC0000;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        <span style="color: #003366; font-weight: bold;">var</span> buf <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
        <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> j<span style="color: #339933;">=</span>i<span style="color: #339933;">;</span> j<span style="color: #339933;">&lt;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">4</span><span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
            buf <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>buf <span style="color: #339933;">&lt;&lt;</span> <span style="color: #CC0000;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> b64_decode_char<span style="color: #009900;">&#40;</span>str<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        decoded <span style="color: #339933;">+=</span> b64_table<span style="color: #009900;">&#91;</span>buf <span style="color: #339933;">&gt;&gt;</span> <span style="color: #CC0000;">16</span> <span style="color: #339933;">&amp;</span> 0xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        decoded <span style="color: #339933;">+=</span> b64_table<span style="color: #009900;">&#91;</span>buf <span style="color: #339933;">&gt;&gt;</span> <span style="color: #CC0000;">8</span>  <span style="color: #339933;">&amp;</span> 0xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        decoded <span style="color: #339933;">+=</span> b64_table<span style="color: #009900;">&#91;</span>buf       <span style="color: #339933;">&amp;</span> 0xff<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #003366; font-weight: bold;">var</span> ex <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>str.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>str.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'='</span><span style="color: #009900;">&#41;</span> ex<span style="color: #339933;">++;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>str.<span style="color: #660066;">charAt</span><span style="color: #009900;">&#40;</span>str.<span style="color: #660066;">length</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'='</span><span style="color: #009900;">&#41;</span> ex<span style="color: #339933;">++;</span>
    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>ex <span style="color: #339933;">!=</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
        decoded <span style="color: #339933;">=</span>  decoded.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> decoded.<span style="color: #660066;">length</span><span style="color: #339933;">-</span>ex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000066; font-weight: bold;">return</span> decoded<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>errorは中で例外を投げている。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bugyo.tk/b-log/archives/762/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Git] 指定したブランチにpushする</title>
		<link>http://blog.bugyo.tk/b-log/archives/750</link>
		<comments>http://blog.bugyo.tk/b-log/archives/750#comments</comments>
		<pubDate>Tue, 25 Oct 2011 10:58:07 +0000</pubDate>
		<dc:creator>bugyo</dc:creator>
				<category><![CDATA[コンピュータ]]></category>

		<guid isPermaLink="false">http://blog.bugyo.tk/b-log/?p=750</guid>
		<description><![CDATA[無引数でpushして、push先にブランチが出来ず、嵌まったのでメモ。 pushはブランチ構造ごとpushするわけではない。 pushは指定したローカルなブランチとリモートにあるブランチとの間で行われる。 リモートリポジ [...]]]></description>
			<content:encoded><![CDATA[<p>無引数でpushして、push先にブランチが出来ず、嵌まったのでメモ。</p>
<p>pushはブランチ構造ごとpushするわけではない。<br />
pushは指定したローカルなブランチとリモートにあるブランチとの間で行われる。<br />
リモートリポジトリのmaster以外のブランチにpushしたい場合は明示的にpush先のブランチ指定する必要がある。push先のブランチを指定してpushするには、</p>
<pre>
% git push <送信先リポジトリ> <送信元ブランチ>:<送信先ブランチ>
</pre>
<p>のようにする。</p>
<p>送信先のリポジトリを指定するのが面倒なので、</p>
<pre>
% git push branch:branch #bad example
</pre>
<p>のように書いてみたが駄目だった。</p>
<p>Gitでは、clone元のことをoriginと呼んでいるようなので、</p>
<pre>
% git push origin branch:branch #ok
</pre>
<p>のように書いてみるとこれは通るよう。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bugyo.tk/b-log/archives/750/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[sed] 全角英数を半角にする</title>
		<link>http://blog.bugyo.tk/b-log/archives/744</link>
		<comments>http://blog.bugyo.tk/b-log/archives/744#comments</comments>
		<pubDate>Wed, 24 Aug 2011 10:06:32 +0000</pubDate>
		<dc:creator>bugyo</dc:creator>
				<category><![CDATA[コンピュータ]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[コマンド]]></category>
		<category><![CDATA[全角英数]]></category>
		<category><![CDATA[半角英数]]></category>
		<category><![CDATA[置換]]></category>

		<guid isPermaLink="false">http://blog.bugyo.tk/b-log/?p=744</guid>
		<description><![CDATA[あるテキストファイルの全角英数を半角英数に変換する必要があった。 文字ごとの置換には sed の y 関数を使う。 sed 'y/置換する文字*/置換後の文字*/' として、置換する文字と対応する置き換え先の文字を列挙す [...]]]></description>
			<content:encoded><![CDATA[<p>あるテキストファイルの全角英数を半角英数に変換する必要があった。</p>
<p>文字ごとの置換には sed の y 関数を使う。</p>
<pre>
  sed 'y/置換する文字*/置換後の文字*/'
</pre>
<p>として、置換する文字と対応する置き換え先の文字を列挙する。</p>
<pre>
% sed 'y/ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺ¥
ａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ０１２３４５６７８９/¥
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789/'¥
input.txt > output.txt
</pre>
<p>のようにすれば、全角英数を半角英数に置換できる。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bugyo.tk/b-log/archives/744/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

