<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Scala / Drkcore</title><link>http://blog.kzfmix.com/Scala</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Sun, 01 Jan 2012 07:04:31 +0919</lastBuildDate><item><title>あけましておめでとうございます</title><link>http://blog.kzfmix.com/entry/1325236093</link><description>&lt;p&gt;&lt;img alt="1325236049" src="http://www.kzfmix.com/images/blog/1325236049.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;叔母が脳腫瘍で緊急手術したため、お見舞いに行った先のホテルで年を越しているわけだが、出発時に義母家に犬を預けに行ったら、義母は腎臓結石でぐったりしてたという、、、&lt;/p&gt;
&lt;p&gt;そういえば夏休みは実母が入院してお見舞いに行ったなと。そんな感じで身内に病気がたてつづけに発生した一年であったが、全員大事には至ってはいないので、そういう意味では去年はラッキーな一年だったのだろう。&lt;/p&gt;
&lt;p&gt;健康が一番ということで、今年も健康に気を使って家族で楽しくやっていきたい。それから、言語的にはScala、ガジェット的にはAndroidを一人前にあつかえるようにしたいなぁ。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/B005VKMER6/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41JpK6pTvyL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;TOSHIBA REGZA Tablet AT3S0/35D レグザタブレット Android3.2 タッチパネル付き 7型ワイド PA3S035DNAS&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    &lt;br /&gt;
    東芝 / 47826円 ( 2011-10-21 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Sun, 01 Jan 2012 07:04:31 +0919</pubDate><category>life</category><category>Scala</category><category>Android</category></item><item><title>2011年に読んだ本</title><link>http://blog.kzfmix.com/entry/1325231753</link><description>&lt;p&gt;去年&lt;a href="http://blog.kzfmix.com/entry/1293542750"&gt;2010年に読んだ本&lt;/a&gt;というエントリを書いたので、今年も読んだ本の中から良かったものを選んでみた。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1313377977"&gt;アジャイルな手法とか、最近のソーシャルネットの手法を効果的に取り込んだ、創薬研究プロセスとかそのためのインフラ構築に興味がある&lt;/a&gt;ので、ビジネス本はそういうあたりがインスパイアされそうなものを選んであります。&lt;/p&gt;
&lt;p&gt;技術書は色々読んだが、Scalaはもう少し追いかけていきたいなぁと思っている。&lt;/p&gt;
&lt;h3&gt;ビジネス本&lt;/h3&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4837957285/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/514UIxfBTzL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;「新しい働き方」ができる人の時代&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    セス・ゴーディン&lt;br /&gt;
    三笠書房 / 1470円 ( 2011-07-01 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1309816444"&gt;働き方やこどもの教育には関心がある&lt;/a&gt;ので、今後どういう方向に向かうのかっていうのは興味がある。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274068560/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51b4P511wTL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;アジャイルサムライ−達人開発者への道−&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Jonathan Rasmusson&lt;br /&gt;
    オーム社 / 2730円 ( 2011-07-16 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;まだ書評を書いてないけど、これは非常に面白いです。賛成できないところもあるけど、それすら「なぜ賛成できないのだろうか？」と考えさせられるので読んでて楽しかった。インセプションデッキと、エレベーターピッチは創薬プロジェクトでも有効だろうなと思うので取り入れてみたいなぁと。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/482226470X/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41oZaJSuYdL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;デザインの骨格&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    山中俊治&lt;br /&gt;
    日経BP社 / 1680円 ( 2011-01-29 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1300996712"&gt;僕はドラッグデザインにはアートの要素が沢山含まれていて楽しい仕事だと思っている&lt;/a&gt;し、工業デザインの範疇に入ると考えている。&lt;/p&gt;
&lt;h3&gt;技術書&lt;/h3&gt;
&lt;p&gt;技術書は&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/477414813X/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51kWsXJ-8dL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;パーフェクトJavaScript (PERFECT SERIES 4)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    井上 誠一郎&lt;br /&gt;
    技術評論社 / 3360円 ( 2011-09-23 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1323688068"&gt;Javascript使いになろうとするなら必読&lt;/a&gt;かな。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798115169/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41ITBBEjKgL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;達人に学ぶ SQL徹底指南書 (CodeZine BOOKS)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    ミック&lt;br /&gt;
    翔泳社 / 2520円 ( 2008-02-07 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1319371060"&gt;集合指向言語として考えればSQLの言語仕様は非常に面白い&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/479802998X/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51frUx%2Bin1L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Scala実践プログラミング―オープンソース徹底活用&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    小笠原 啓&lt;br /&gt;
    秀和システム / 2940円 ( 2011-06 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;Perlでいうところの「モダンPerl入門」またはPythonで言うところの「エキスパートPythonプログラミング」に対応する感じの&lt;a href="http://blog.kzfmix.com/entry/1318674546"&gt;中級を目指す人向けの本&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;Scalaはもっと盛り上がってもいいと思うんだけどなぁ。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774148970/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/516Uy5NrxdL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Emacs Lispテクニックバイブル&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    るびきち&lt;br /&gt;
    技術評論社 / 3129円 ( 2011-11-26 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;Emacs使いは読まねばならん。もう少し自分好みに手を入れられるように積極的にelisp書いていきたいなぁ。&lt;/p&gt;</description><pubDate>Fri, 30 Dec 2011 18:05:23 +0919</pubDate><category>chemoinformatics</category><category>life</category><category>Scala</category></item><item><title>JavaCCでパーサを作ってみる</title><link>http://blog.kzfmix.com/entry/1321565547</link><description>&lt;p&gt;ふつうのコンパイラをつくろうを読み始めた。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797337958/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/419S%2BG0jL-L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;ふつうのコンパイラをつくろう 言語処理系をつくりながら学ぶコンパイルと実行環境の仕組み&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    青木 峰郎&lt;br /&gt;
    ソフトバンククリエイティブ / 3360円 ( 2009-07-24 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;JavaCCを使ったAdderの写経。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://javacc.java.net/"&gt;The Java Parser Generator&lt;/a&gt;&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;options&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;STATIC&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;PARSER_BEGIN&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Adder&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;java.io.*&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Adder&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt;&lt;span class="o"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="nl"&gt;arg:&lt;/span&gt; &lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;try&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;out&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;evaluate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arg&lt;/span&gt;&lt;span class="o"&gt;));&lt;/span&gt;
            &lt;span class="o"&gt;}&lt;/span&gt;
            &lt;span class="k"&gt;catch&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ParseException&lt;/span&gt; &lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
                &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;err&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ex&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;getMessage&lt;/span&gt;&lt;span class="o"&gt;());&lt;/span&gt;
            &lt;span class="o"&gt;}&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="nf"&gt;evaluate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;String&lt;/span&gt; &lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="kd"&gt;throws&lt;/span&gt; &lt;span class="n"&gt;ParseException&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
         &lt;span class="n"&gt;Reader&lt;/span&gt; &lt;span class="n"&gt;reader&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;StringReader&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;src&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
         &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nf"&gt;Adder&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;reader&lt;/span&gt;&lt;span class="o"&gt;).&lt;/span&gt;&lt;span class="na"&gt;expr&lt;/span&gt;&lt;span class="o"&gt;();&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;PARSER_END&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Adder&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="nl"&gt;SKIP:&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;\t&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;\r&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;\n&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="nl"&gt;TOKEN:&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nl"&gt;INTEGER:&lt;/span&gt; &lt;span class="o"&gt;([&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;9&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;])+&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="nf"&gt;expr&lt;/span&gt;&lt;span class="o"&gt;():&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;Token&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;=&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;INTEGER&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;+&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;=&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;INTEGER&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;EOF&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="o"&gt;{&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;Long&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;parseLong&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;Long&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;parseLong&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
        &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;イマイチよくわからないのは慣れてないせいか？パーサだったらRWHのParsecが楽しかった。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114233/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51rAJvgAkgL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Real World Haskell―実戦で学ぶ関数型言語プログラミング&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Bryan O'Sullivan&lt;br /&gt;
    オライリージャパン / 3990円 ( 2009-10-26 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;Scalaも調べたら&lt;a href="http://www.coins.tsukuba.ac.jp/~i021216/Scala-parser-combinator.pdf"&gt;スライド見つけた&lt;/a&gt;。あとで試してみようっと。&lt;/p&gt;</description><pubDate>Fri, 18 Nov 2011 19:06:53 +0919</pubDate><category>Haskell</category><category>Scala</category><category>Java</category></item><item><title>Console.scalaで出力する文字の色を変える</title><link>http://blog.kzfmix.com/entry/1319629472</link><description>&lt;p&gt;Console.scalaを読んでいたらANSI color codesをvalで定義してあった&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;scala&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;Console._&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;Console._&lt;/span&gt;

&lt;span class="n"&gt;scala&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;YELLOW&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;yellow&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nc"&gt;RESET&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;quot; and &amp;quot;&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nc"&gt;RED&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;red&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nc"&gt;RESET&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;こんなので、色が付くので便利かも&lt;/p&gt;
&lt;p&gt;&lt;img alt="term color" src="http://www.kzfmix.com/images/blog/scala_term.png" /&gt;&lt;/p&gt;</description><pubDate>Wed, 26 Oct 2011 20:45:04 +0919</pubDate><category>Scala</category></item><item><title>Function.scalaのchainメソッド</title><link>http://blog.kzfmix.com/entry/1319543167</link><description>&lt;p&gt;Scalaのソースを読んでいます。&lt;/p&gt;
&lt;p&gt;Function.scalaのchainメソッドっていうのが面白い。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="n"&gt;chain&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;a&lt;/span&gt;&lt;span class="o"&gt;](&lt;/span&gt;&lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Seq&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;a&lt;/span&gt; &lt;span class="k"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kt"&gt;a&lt;/span&gt;&lt;span class="o"&gt;])&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="k"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;/:&lt;/span&gt; &lt;span class="n"&gt;fs&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;((&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="k"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt; &lt;span class="o"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;/:っていうのはfoldleftのシンタックスシュガーなので、よくあるパターンと対比ささせてみる&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="n"&gt;scala&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="o"&gt;/:&lt;/span&gt; &lt;span class="nc"&gt;Seq&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="o"&gt;))(&lt;/span&gt;&lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;res9&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Int&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;左からパタパタと倒していく。&lt;/p&gt;
&lt;p&gt;つまりSeq[a =&amp;gt; a]という関数のシーケンスを次々に適用していくわけですね。&lt;/p&gt;
&lt;p&gt;故にチェイン&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/479802998X/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51frUx%2Bin1L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Scala実践プログラミング―オープンソース徹底活用&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    小笠原 啓&lt;br /&gt;
    秀和システム / 2940円 ( 2011-06 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Wed, 26 Oct 2011 04:52:54 +0919</pubDate><category>Scala</category></item><item><title>ScalaのBooleanのboxing, unboxing</title><link>http://blog.kzfmix.com/entry/1319198708</link><description>&lt;p&gt;いろいろあって&lt;a href="http://aperiodic.net/phil/scala/s-99/"&gt;S-99&lt;/a&gt;への気力が削がれているので、Scalaの標準ライブラリを読み始めてみた。&lt;/p&gt;
&lt;p&gt;Booleanオブジェクトにはbox,unboxメソッドがあった。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;scala&amp;gt; Boolean box &lt;span class="nb"&gt;true&lt;/span&gt;
res20: java.lang.Boolean &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;

scala&amp;gt; Boolean unbox &lt;span class="o"&gt;(&lt;/span&gt;Boolean box &lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
res21: &lt;span class="nv"&gt;Boolean&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330845/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/415CsfYp64L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Scalaスケーラブルプログラミング第2版&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Martin Odersky&lt;br /&gt;
    インプレスジャパン / 4830円 ( 2011-09-27 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://playscalaja.appspot.com/"&gt;Play! Scala&lt;/a&gt;でなにかを作ってみたい。&lt;/p&gt;</description><pubDate>Fri, 21 Oct 2011 21:15:48 +0919</pubDate><category>Scala</category></item><item><title>Stream[&lt;empty&gt;.Int]</title><link>http://blog.kzfmix.com/entry/1318161637</link><description>&lt;p&gt;こんなのをREPLで動かすと普通に動くんだけど&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="n"&gt;sieve&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Stream&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;Int&lt;/span&gt;&lt;span class="o"&gt;])&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Stream&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;Int&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
  &lt;span class="nc"&gt;Stream&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cons&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sieve&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tail&lt;/span&gt; &lt;span class="n"&gt;filter&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;)))&lt;/span&gt;

&lt;span class="k"&gt;val&lt;/span&gt; &lt;span class="n"&gt;ps&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sieve&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Stream&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;

&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ps&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tail&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;スクリプトで動かそうとすると、型が違うよって怒られます。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;scala e.scala 
/Users/kzfm/scala/e.scala:4: error: &lt;span class="nb"&gt;type &lt;/span&gt;mismatch;
 found   : scala.collection.immutable.Stream&lt;span class="o"&gt;[&lt;/span&gt;scala.Int&lt;span class="o"&gt;]&lt;/span&gt;
 required: Stream&lt;span class="o"&gt;[&lt;/span&gt;&amp;lt;empty&amp;gt;.Int&lt;span class="o"&gt;]&lt;/span&gt;
val &lt;span class="nv"&gt;ps&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; sieve&lt;span class="o"&gt;(&lt;/span&gt;Stream.from&lt;span class="o"&gt;(&lt;/span&gt;2&lt;span class="o"&gt;))&lt;/span&gt;
                          ^
/Users/kzfm/scala/e.scala:2: error: value % is not a member of Int
  Stream.cons&lt;span class="o"&gt;(&lt;/span&gt;s.head, sieve&lt;span class="o"&gt;(&lt;/span&gt;s.tail filter &lt;span class="o"&gt;(&lt;/span&gt;_ % s.head !&lt;span class="o"&gt;=&lt;/span&gt; 0&lt;span class="o"&gt;)))&lt;/span&gt;
                                             ^
two errors found
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;これはいったい何なんでしょう？&lt;/p&gt;
&lt;h3&gt;追記&lt;/h3&gt;
&lt;p&gt;ubuntuの2.9.1.finalではエラーが出なかったが、mac osxの2.9.1.final (Java 1.5.0_30)だと出た。&lt;a href="http://twitter.com/kzfm/status/123178598218727424"&gt;JDK 1.6.0_26+Scala 2.9.1&lt;/a&gt;だと動くという情報を頂いたので、javaのバージョンを上げてみたが、結果は変わらなかった。&lt;/p&gt;
&lt;p&gt;よくかんがえてみればREPLで動かせば動くので、javaの問題ではない気はする。&lt;/p&gt;
&lt;p&gt;それから以前、よくわからなかった&lt;a href="http://blog.kzfmix.com/entry/1317333158"&gt;IntじゃなくてScala.Intにしないといけない理由&lt;/a&gt;も同じあたりに問題があるような気がしてきた。&lt;/p&gt;
&lt;p&gt;残るのはMacのバージョン(10.5)に問題があるのか、環境変数なんかおかしいかくらいしか考えられないが、同じような問題を抱えてるヒトをググってみても全然出てこないのが、自分固有の問題臭を漂わせているわけでなんかボケたことをやっている気がしないでもない。&lt;/p&gt;</description><pubDate>Thu, 20 Oct 2011 05:59:35 +0919</pubDate><category>Scala</category></item><item><title>Scala実践プログラミングを読んだ</title><link>http://blog.kzfmix.com/entry/1318674546</link><description>&lt;p&gt;本書は、Perlでいうところの「モダンPerl入門」またはPythonで言うところの「エキスパートPythonプログラミング」に対応する感じの中級を目指す人向けの本ですね。なお、Scalaだけでなく色々な言語をかじっていれば楽しく読めるので良いですね。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/479802998X/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51frUx%2Bin1L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Scala実践プログラミング―オープンソース徹底活用&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    小笠原 啓&lt;br /&gt;
    秀和システム / 2940円 ( 2011-06 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;一通り読んでみて、5,6,7章が良かった。10章はあとでゆっくり（今継続やってもあれなので）。あと、標準ライブラリのソースも読んだほうがいいなと。&lt;/p&gt;
&lt;h3&gt;1,2章&lt;/h3&gt;
&lt;p&gt;文法等の話はコップ本等で補足しながら読まないとよくわからないんじゃないかと。逆に言うと、コップ本の後に読んだ時にきちんと理解しているかどうかの確認としてよろしい。個人的にはコンパニオンオブジェクトとか、補助コンストラクタ、パッケージオブジェクトあたりの説明が役に立った。あと2.8-2.9の新機能紹介。&lt;/p&gt;
&lt;h3&gt;3章&lt;/h3&gt;
&lt;p&gt;関数型プログラミングに関して。基本的な内容だったのでサラっと流して最後のほうだけ。&lt;/p&gt;
&lt;p&gt;カリー化による部分適用はプレースホルダー構文による部分適用よりも柔軟性が低い&lt;/p&gt;
&lt;p&gt;Haskellで引数の順番を入れ替えるflipっていう関数はあるけど、プレースホルダー構文のほうが楽ですね。&lt;/p&gt;
&lt;h3&gt;4章 他言語との比較&lt;/h3&gt;
&lt;p&gt;4-1とHaskellとの比較が大変参考になった。それから4-2のStructual SubtypingとNominal Subtypingの話はわかりやすかった。もう少しScalaを使ってみないときちんと理解してるかどうか不安な部分もあるけど。&lt;/p&gt;
&lt;h3&gt;5章 開発環境&lt;/h3&gt;
&lt;p&gt;とりあえず、sbtを入れてみた(0.11.0)けど、本のバージョン(0.7.5)のように起動時にディレクトリのスケルトンは作成しないようだ。？ってなったので調べたら0.7系と0.10系は結構変わってるらしい。まぁ、直接ドキュメント読みながら覚えていくからいいかなぁと思った。今、エディタはEmacs使って書いてるけど、そのうちEclipseに移行するのかなぁ、わからんなぁ。テストはなんかプロジェクトを作ったら使うけど今のとこは小さいサンプル動かしてるだけなのであまりそそられてない。&lt;/p&gt;
&lt;h3&gt;6章 WAF&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.playframework.org/"&gt;Play!&lt;/a&gt;が面白そうなので只今絶賛いじり中&lt;/p&gt;
&lt;h3&gt;7章 デザパタ&lt;/h3&gt;
&lt;p&gt;Javaのデザパタ本をScalaで一回書いておくのがいいかなと思った。それからScalaのためのデザインパターン(Loan,Concept,Cake)は勉強になった。Cakeはいまいち飲み込めてないけど、あとで手を動かして考えてみる。&lt;/p&gt;
&lt;h3&gt;8,9章&lt;/h3&gt;
&lt;p&gt;流し読んだ&lt;/p&gt;
&lt;h3&gt;10章Actorと継続&lt;/h3&gt;
&lt;p&gt;Actorは軽く流してあったが継続は30ページ超えという。なぜか継続はワクワクしますな。ちゃんと読んでないのであとでゆっくり読む。&lt;/p&gt;
&lt;h3&gt;多分読んであったほうがよいと思われる本&lt;/h3&gt;
&lt;p&gt;Scalaをある程度知っているのが前提だと思われるので。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330845/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/415CsfYp64L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Scalaスケーラブルプログラミング第2版&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Martin Odersky&lt;br /&gt;
    インプレスジャパン / 4830円 ( 2011-09-27 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;Haskellも基本的なところは抑えつつRWHくらいまで読んでおいたほうが吉ですね。ちなみにプログラミングHaskellは名著なので練習問題も含めて一度は解いておくべきでしょう&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274067815/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41pybn9bpCL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;プログラミングHaskell&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Graham Hutton&lt;br /&gt;
    オーム社 / 2940円 ( 2009-11-11 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114233/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51rAJvgAkgL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Real World Haskell―実戦で学ぶ関数型言語プログラミング&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Bryan O'Sullivan&lt;br /&gt;
    オライリージャパン / 3990円 ( 2009-10-26 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;Javaは知らんが、個人的にはパーフェクトJavaでも買おうかなと思っている(パーフェクトJavascriptがとても良かったので)。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4774139904/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51sc1ff5eML._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    アリエル・ネットワーク株式会社&lt;br /&gt;
    技術評論社 / 3780円 ( 2009-09-24 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;デザパタ知らないヒトはいないと思いますが、読むならこれですね。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797327030/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51k0udCitAL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;増補改訂版Java言語で学ぶデザインパターン入門&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    結城 浩&lt;br /&gt;
    ソフトバンククリエイティブ / 3990円 ( 2004-06-19 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Sun, 16 Oct 2011 15:26:02 +0919</pubDate><category>Scala</category></item><item><title>「Scala実践プログラミング」を注文した</title><link>http://blog.kzfmix.com/entry/1318162124</link><description>&lt;p&gt;先日東京出張の際にパラっとめくってヨサゲだったのだけど、思ったよりでかくて重かったので、改めてAmazonで注文した。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/479802998X/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51frUx%2Bin1L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Scala実践プログラミング―オープンソース徹底活用&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    小笠原 啓&lt;br /&gt;
    秀和システム / 2940円 ( 2011-06 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;最近Scalaを触っていて、型で躓くことが多いです。あとエラーの内容がナニを意味してるのかよく分からなくてイラッとさせられることが多いんですが、まぁ踏ん張りどころということで。&lt;/p&gt;
&lt;p&gt;今日はScalaプログラミング入門のDwemthyを写経したんだけどエラーが出まくって凹んだ。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4822284239/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41rRKEKAdiL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Scalaプログラミング入門&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    デイビッド・ポラック&lt;br /&gt;
    日経BP社 / 3360円 ( 2010-03-18 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Sun, 09 Oct 2011 21:09:47 +0919</pubDate><category>Scala</category></item><item><title>ベターJavaというよりはゆるふわHaskellとしてScalaを使う</title><link>http://blog.kzfmix.com/entry/1317726180</link><description>&lt;p&gt;最近ちょっとScala度が上がっています。螺旋を表すScalaのロゴはDNAのらせん構造をも意味するわけです（超訳）&lt;/p&gt;
&lt;p&gt;ここ数年はずっとPythonをメインに使っていて、大抵のことはサクサクかけて便利だし、コード読みやすいし&lt;a href="http://flask.pocoo.org/"&gt;Flask&lt;/a&gt;は楽しいしと、特に不便を感じることはなく使っていたのだけど最近幾つかの要因が重なって心境の変化があった。&lt;/p&gt;
&lt;h3&gt;其の壱&lt;/h3&gt;
&lt;p&gt;devquizで&lt;a href="http://blog.kzfmix.com/entry/1315915453"&gt;Python&lt;/a&gt;の高速化がめんどくさかった(というか出来なかった)こと。&lt;a href="http://pypy.org/"&gt;PyPy&lt;/a&gt;は手元のmacbookでは動かなかったので仕方ないとして、&lt;a href="http://cython.org/"&gt;Cython&lt;/a&gt;がクラスにしちゃうとよくわからんよねーと。だったら最初からC/C++で書けばいいんじゃないのかなぁと。&lt;/p&gt;
&lt;p&gt;というわけで、Pythonの他に実行速度の速い言語も覚えておきたいなぁと思った（でも、LLっぽくお手軽に書きたいよね）。&lt;/p&gt;
&lt;h3&gt;其の貳&lt;/h3&gt;
&lt;p&gt;Haskellは面白いがなかなか身につかない。プログラミングHaskellからReal World Haskellを順調に読み終えて、じゃぁ実際に使うかと思っても、意外なとこで躓くことが多かった。あと、RWHの次に読む本がないというのも独学なヒトにはつらいとこでなかろうか。&lt;/p&gt;
&lt;p&gt;もう一つは、仕事で使う用のライブラリとかバインディングが揃ってなくて、職場で使う機会があまりなかったっていうのも大きいかもしれない。&lt;/p&gt;
&lt;p&gt;でも関数型プログラミングは楽しいので使いたい。&lt;/p&gt;
&lt;h3&gt;其ノ參&lt;/h3&gt;
&lt;p&gt;そろそろ、新しい言語を身につけたいよねーと。出来れば関数型で。&lt;/p&gt;
&lt;h3&gt;そしてScalaが気になりだした。&lt;/h3&gt;
&lt;p&gt;最初、Scalaを触ったときは、REPLの起動が遅いし型の定義とかめんどくさそうだし、javaはあまり好きじゃないし、自分は使わないわなぁと投げ出していたのだけど、RWH読み終えて型の素敵さに目覚めた上で再度Scalaを触ったらイイかもと思い始めた。javaのライブラリも使えるので仕事用のコードも書ける。&lt;/p&gt;
&lt;p&gt;素数のリストだってHaskell風味に書けるし、Maybeに似た感じのOptionっていう型だったある。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="n"&gt;sieve&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Stream&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;Int&lt;/span&gt;&lt;span class="o"&gt;])&lt;/span&gt;&lt;span class="k"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Stream&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;Int&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt;
   &lt;span class="nc"&gt;Stream&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cons&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sieve&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tail&lt;/span&gt; &lt;span class="n"&gt;filter&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="k"&gt;_&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;head&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="o"&gt;)))&lt;/span&gt;

&lt;span class="k"&gt;val&lt;/span&gt; &lt;span class="n"&gt;ps&lt;/span&gt; &lt;span class="k"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sieve&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;Stream&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;from&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;というわけで、ちょっとScalaで書こうかなと思っている。&lt;/p&gt;
&lt;h3&gt;書籍&lt;/h3&gt;
&lt;p&gt;プログラミングHaskellは名著。問題も含めて一度は読むべき&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274067815/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41pybn9bpCL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;プログラミングHaskell&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Graham Hutton&lt;br /&gt;
    オーム社 / 2940円 ( 2009-11-11 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;Real World Haskellは型の素晴らしさを学んだ。と共にHaskell難しいのうと感じた。そしてちょっと挫折した。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114233/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51rAJvgAkgL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Real World Haskell―実戦で学ぶ関数型言語プログラミング&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Bryan O'Sullivan&lt;br /&gt;
    オライリージャパン / 3990円 ( 2009-10-26 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;Scalaプログラミング入門は楽しい。でも色々端折ってて疑問点が出まくりなのでコップ本は必須かな。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4822284239/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41rRKEKAdiL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Scalaプログラミング入門&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    デイビッド・ポラック&lt;br /&gt;
    日経BP社 / 3360円 ( 2010-03-18 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;バイブルになるか？&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4844330845/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/415CsfYp64L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Scalaスケーラブルプログラミング第2版&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Martin Odersky&lt;br /&gt;
    インプレスジャパン / 4830円 ( 2011-09-27 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;h3&gt;おまけ&lt;/h3&gt;
&lt;p&gt;ScalaってベターJavaなのかなぁ? Perl,Python,RubyとかのLLのヒトが関数型プログラミング+静的な型付けを求めて入るほうが自然な気がするんだけどなぁと、自分がそうなのでそう思うだけなのかなぁと。&lt;/p&gt;</description><pubDate>Wed, 05 Oct 2011 23:08:50 +0919</pubDate><category>Scala</category></item></channel></rss>