<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/mamonbo/">
    <title>mamonbo @ ウィキ</title>
    <link>http://w.atwiki.jp/mamonbo/</link>
    <atom:link href="https://w.atwiki.jp/mamonbo/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>mamonbo @ ウィキ</description>

    <dc:language>ja</dc:language>
    <dc:date>2014-09-24T20:41:37+09:00</dc:date>
    <utime>1411558897</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/mamonbo/pages/25.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mamonbo/pages/24.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mamonbo/pages/23.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mamonbo/pages/22.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mamonbo/pages/21.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mamonbo/pages/20.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mamonbo/pages/19.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mamonbo/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mamonbo/pages/17.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/mamonbo/pages/16.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/mamonbo/pages/25.html">
    <title>Haskell/真偽値</title>
    <link>https://w.atwiki.jp/mamonbo/pages/25.html</link>
    <description>
      ==等しいかとその他の比較==

(前回の復習)
前回の章で、Haskellで等号を変数や関数を定義するのに使う方法を見てきた。
例えば、以下のコード
&lt;blockquote&gt;
r = 5
&lt;/blockquote&gt;
で定義のスコープに沿って置き換わって意味の通じるところ全てで&lt;tt&gt;5&lt;/tt&gt;に置き換わる
&lt;tt&gt;r&lt;/tt&gt;が現れる。また、
&lt;blockquote&gt;
f x = x + 3
&lt;/blockquote&gt;
で数字が1つ後に続き(&lt;tt&gt;f&lt;/tt&gt;の引数として取る)、その数に3を足すのに置き換わる
&lt;tt&gt;f&lt;/tt&gt;が現れる。
(復習おわり)

しかし、数学では、等号は微妙に違っていて、同様に重要な意味でも使われる。
例えば、この問題について考える:

{| 
|valign=&quot;top&quot; style=&quot;border-right: 1px dashed SlateBlue&quot;|
&lt;b&gt;例題:&lt;/b&gt;次の方程式を解きなさい:

&lt;math&gt;x+3=5&lt;/math&gt;
|}

このような問題を見たとき、&lt;math&gt;5&lt;/math&gt;が&lt;math&gt;x+3&lt;/math&gt;の代わりになるとか、
その逆にすぐに関心を持つわけでない。代わりに、方程式&lt;math&gt;x+3=5&lt;/math&gt;を
&#039;&#039;命題&#039;&#039;、と理解し、ある数&lt;math&gt;x&lt;/math&gt;が3足すと結果として5となるという意味となる。
「方程式を解く」とは命題が真となるような&lt;math&gt;x&lt;/math&gt;の値を、存在するのならば、
見つけ出すということである。この例題では、初等代数学を用いれば、等式を&lt;math&gt;x=5-3&lt;/math&gt;,&lt;math&gt;x=2&lt;/math&gt;と変形し、目的の解を求めることが出来る。
また、解が等式を成立させることは元の等式に&lt;math&gt;x=2&lt;/math&gt;を代入することで
確認できる。例題では&lt;math&gt;2+3=5&lt;/math&gt;という明らかに真である結果になる。
(注:最新版が壊れていたのでここの部分に関しては旧版から持ってきた)

等しいかどうかを見るために値を比較することはプログラミングにおいても便利である。
Haskellではそのような比較をちょうど方程式のように見える自然な方法で書くことが出来る。
等号は    </description>
    <dc:date>2014-09-24T20:41:37+09:00</dc:date>
    <utime>1411558897</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mamonbo/pages/24.html">
    <title>初回購入特典</title>
    <link>https://w.atwiki.jp/mamonbo/pages/24.html</link>
    <description>
      初回購入特典は
2007で00の部分がメガネになっているやつ
プチプチした後のプチプチ
偽造1円玉
HDDVDプレイヤー

嘘です。    </description>
    <dc:date>2014-09-05T11:45:03+09:00</dc:date>
    <utime>1409885103</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mamonbo/pages/23.html">
    <title>Haskell/変数と関数/fig1.png</title>
    <link>https://w.atwiki.jp/mamonbo/pages/23.html</link>
    <description>
      #ref(tri.png)
製作者:Mamonbo
ライセンス:パブリックドメイン(頭使わなくてもこんなもの作れるため)    </description>
    <dc:date>2014-08-21T15:45:51+09:00</dc:date>
    <utime>1408603551</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mamonbo/pages/22.html">
    <title>Haskell</title>
    <link>https://w.atwiki.jp/mamonbo/pages/22.html</link>
    <description>
      [[Wikibooks:Haskell勝手に日本語訳]]へ    </description>
    <dc:date>2014-08-15T13:16:19+09:00</dc:date>
    <utime>1408076179</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mamonbo/pages/21.html">
    <title>Haskell/環境の構築</title>
    <link>https://w.atwiki.jp/mamonbo/pages/21.html</link>
    <description>
      この章ではHaskellでコードを書くときに必要となるプログラムのインストール方法について説明する。

==Haskellのインストール==
Haskellは&#039;&#039;プログラミング言語&#039;&#039;、人が計算機がどう振る舞うべきかをを表せる言語である。
料理のレシピを書くような感じで、あなたがレシピを書いて計算機がレシピを実行してくれる。

Haskellのプログラムを使うためには、Haskell&#039;&#039;コンパイラ&#039;&#039;と呼ばれる特別なプログラムが必要である。コンパイラはHaskellで書かれたコードを受け取って計算機が理解出来るより原始的な言語である&#039;&#039;機械語&#039;&#039;に翻訳する。
(機械が理解出来るのが機械語で、(設計さえやれば)バイナリである必要は無くBrainf*ckでも機械語になりうる　という話も)

上の料理の例えを使えば、あなたがレシピなるHaskellプログラムを書いて、料理人にあたるコンパイラプログラムが実際の材料を合わせて食べられる料理にあたる実行可能ファイルを作る作業をするのである。もちろん、完成した料理から簡単にはレシピを知ることは出来ない、つまり
コンパイル後は実行可能ファイルからHaskellのコードを知ることが出来ない。

Haskell学習を始めるために&#039;&#039;&#039;[http://hackage.haskell.org/platform/ Haskellプラットフォーム]をダウンロードしインストールする&#039;&#039;&#039;。中には&quot;Glasgow Haskell Compiler&quot;略してGHCと他の必要なものすべてが入っているだろう。

もしただHaskellを試してみたいとか完全なコンパイラをダウンロード、インストールするのが
嫌なら[http://www.haskell.org/hugs/ Hugs]が使える。もしくはオンライン管理のインタプリタである[http://www.tryhaskell.org/ TryHaskell]で遊んでみるのもいいかもしれない。
なお、この本での説明ではすべてGHC用になる。
([http://ideone.com/ Ideone]でもオンラインで実行できる)


{| 
|valign=&quot;top&quot; style=&quot;border-right: 1px dashed SlateBlue&quot;|
補足

    </description>
    <dc:date>2014-08-19T21:09:03+09:00</dc:date>
    <utime>1408450143</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mamonbo/pages/20.html">
    <title>プログラム</title>
    <link>https://w.atwiki.jp/mamonbo/pages/20.html</link>
    <description>
      //haskell
ghci&gt; 3.1416 * 5^2
78.53999999999999    </description>
    <dc:date>2014-08-13T18:20:56+09:00</dc:date>
    <utime>1407921656</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mamonbo/pages/19.html">
    <title>チルノ</title>
    <link>https://w.atwiki.jp/mamonbo/pages/19.html</link>
    <description>
      ==サンドボックス!==

{|width=&quot;100%&quot;
|valign=&quot;top&quot;|
ひょう
|}    </description>
    <dc:date>2014-08-13T18:14:11+09:00</dc:date>
    <utime>1407921251</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mamonbo/pages/18.html">
    <title>Haskell/変数と関数</title>
    <link>https://w.atwiki.jp/mamonbo/pages/18.html</link>
    <description>
      &#039;&#039;この章に出てくるすべての例はHaskellのソースファイルに入力しGHCないしHugsに読み込ませることで評価することができる。入力の頭の&quot;Prelude&gt;&quot;のプロンプトは含めないこと。プロンプトが出ているときは、GHCiといった環境にコードを入力してよい。そうでない時は、コードをファイルに入れて実行すること。&#039;&#039;
(斜体にするのは英字だけみたい。そしてEnter入ると切れるみたい。)

==変数==

GHCiを電卓として使う方法はもう見た。もちろん、この方法は短い計算に取ってのみ実用的である。より長い計算やHaskellのプログラムを書くのには中間結果を追跡したい。

中間結果は&#039;&#039;変数&#039;&#039;に格納でき、名前で呼び出すことができる。1つの変数には1つの&#039;&#039;値&#039;&#039;が入っていて、変数が使われた時に変数名が値に代わる。例えば、以下に示すような計算である。

 ghci&gt; 3.1416 * 5^2
 78.53999999999999

これは円の面積公式&lt;math&gt;A = \pi r^2&lt;/math&gt;による半径&lt;code&gt;5&lt;/code&gt;の円のおよその面積である。&lt;math&gt;\pi (\approx 3.1416)&lt;/math&gt;の数桁打つのも、この数桁をきっかり覚えるのさえも面倒臭い。実際、プログラミングの重要な気の持ちようの1つは我々の頭が思う存分より面白い考えを扱うようにするために、非思考的な繰り返しや丸暗記を機械に任せることだ。今回の場合なら、Haskellはすでに10桁以上の&lt;math&gt;\pi&lt;/math&gt;を格納している&lt;code&gt;pi&lt;/code&gt;という変数が入っている。

 ghci&gt; pi
 3.141592653589793
 ghci&gt; pi * 5^2
 78.53981633974483

注意:変数&lt;code&gt;pi&lt;/code&gt;とそれが持っている値&lt;code&gt;3.141592653589793&lt;/code&gt;は計算上では相互交換可能に使われうる。
(後ろに9が続くのは10進数で有限小数でも2進数では無限小数なために精度落ちするため。
ちなみに私は3.14159265358979323846264338327950288419716939937510まで覚えている)

==Haskellのソースファイ    </description>
    <dc:date>2014-08-21T15:54:43+09:00</dc:date>
    <utime>1408604083</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mamonbo/pages/17.html">
    <title>Haskell-logo.png</title>
    <link>https://w.atwiki.jp/mamonbo/pages/17.html</link>
    <description>
      @wikiでのwikipedia like modeでは画像の挿入は検討中とのこと
ちなみにこのページは@wiki mode
#ref(Haskell-logo.png)
ライセンス:パブリックドメイン    </description>
    <dc:date>2014-08-21T15:21:36+09:00</dc:date>
    <utime>1408602096</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/mamonbo/pages/16.html">
    <title>Wikibooks:Haskell勝手に日本語訳</title>
    <link>https://w.atwiki.jp/mamonbo/pages/16.html</link>
    <description>
      [[Haskell-logo.png]]

このページは[http://en.wikibooks.org/wiki/Haskell WikibooksのHaskellのページ(英語版)]の日本語訳である。
なぜ日本語版に上げないのかというと、書き言葉で訳せる気がしないということと、
私自身がHaskell初心者でこれを書きながら学ぼうと思っているからである。

元がクリエイティブ・コモンズ 表示 - 継承 3.0(CC BY-SA 3.0)なので、これもCC BY-SA 3.0
となります。

&#039;&#039;&#039;Haskell&#039;&#039;&#039;は[http://ja.wikipedia.org/wiki/%E9%96%A2%E6%95%B0%E5%9E%8B%E8%A8%80%E8%AA%9E 関数型言語]である。もしプログラミングの経験があるのなら、
[[Haskell/概要|概要]]を見て、Haskellがどのように動くのかをいくらか見、他の言語とどう違うかを見てみよう。

Haskellは幾らかの点に置いて他と異なっている:
*Haskellは&#039;&#039;純粋&#039;&#039;関数型言語である。もし同じ関数を同じ引数で2回違うところで呼び出すと、2回とも全く同じ値を返す。([http://ja.wikipedia.org/wiki/%E5%8F%82%E7%85%A7%E9%80%8F%E9%81%8E%E6%80%A7 参照透過性]という)
*Haskellはtypeclassやgeneralized algebraic data typesと言った(それぞれ型クラス、一般代数データ型といったところか)洗練された特徴を持つモダンな型付けシステムを提供する。(このような用語はすぐに滑らかに口から出るようになる)
*Haskellは&#039;&#039;遅延型&#039;&#039;つまり最終的な結果を得るために必要なときだけ計算をする言語でもある。
(modernをカタカナで訳すのはコンピュータ界隈ではよくある話。対義語の古いって言ってもだいたい20世紀だったりするからかと)

純粋な関数だけを取り扱ってコードをずっと簡単に理解し、それぞれの関数の正しさを解析し、証明しさえするのが簡単になるからHaskellプログラマはHaskellを享受するのである。その上、先進的な型システムが馬鹿げた間違い、真面目な間    </description>
    <dc:date>2014-09-18T13:54:14+09:00</dc:date>
    <utime>1411016054</utime>
  </item>
  </rdf:RDF>
