<?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/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>ディスコ探偵冬景色 &#187; Erlang</title>
	<atom:link href="http://blog.udzura.jp/categories/tech/erlang/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.udzura.jp</link>
	<description>a coding class hero is something to be...</description>
	<lastBuildDate>Thu, 29 Jul 2010 05:48:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/categories/tech/erlang/feed/" />
		<item>
		<title>Erlangやってる</title>
		<link>http://blog.udzura.jp/2009/12/19/my-hello-erlang-world/</link>
		<comments>http://blog.udzura.jp/2009/12/19/my-hello-erlang-world/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 12:19:44 +0000</pubDate>
		<dc:creator>udzura</dc:creator>
				<category><![CDATA[Erlang]]></category>

		<guid isPermaLink="false">http://blog.udzura.jp/?p=210</guid>
		<description><![CDATA[表題のとおり、去年のこの時期にRuby始めたなーとか思いながらぼちぼちいじってます。
変数型

変数は頭が大文字。
一回決めた変数は上書きできない。
数

数。 3 / 2 とかってすれば勝手に少数とかになる


アトム

Rubyで言うシンボル。小文字で始めると勝手にアトム。


タプル

組。数が変わらない。テュープル。


リスト

配列。長さが可変。 [ Head &#124; Tail ] とかやって頭だけ取り出したりできる。Lispのcar/cdrみたいなイメージ？
pythonも同じ名前ですっけ？


文字列

は、ただのリスト。
よく調べてないけど日本語扱うの大変みたいね？


レコード

タプルを便利にした感じ？（無茶なイメージ）



制御構造とか

パターンマッチとガードが大事っぽい
if はガード
case はパターンマッチ＋ガード

関数

moduleは関数をまとめたものと考えて良さそう（Ruby脳？）
引数のパターンマッチで呼び出す手続きを変えられるっぽい。よく知らないんですけど、Javaのポリモーフィズムみたいなの？
とりあえず５分で書いた適当なモジュール：


-module&#40;mathtest&#41;.
-export&#40;&#91;tasu/2, hiku/2, kakeru/2, triangle_area/2, circle_area/1&#93;&#41;.
&#160;
tasu&#40;A, B&#41; -&#62;
 A + B.
&#160;
hiku&#40;A, B&#41; -&#62;
 A - B.
&#160;
kakeru&#40;A, B&#41; -&#62;
 A * B.
&#160;
triangle_area&#40;Base, Height&#41; -&#62;
 Base * Height / 2.
&#160;
circle_area&#40;Radius&#41; -&#62;
 Radius * Radius * 3.14.


udzura@ubuntu-vaio:~/dev$ erl
Erlang R13B01 &#40;erts-5.7.2&#41; &#91;source&#93; &#91;smp:2:2&#93; &#91;rq:2&#93; &#91;async-threads:0&#93; &#91;kernel-poll:false&#93;
&#160;
Eshell V5.7.2  [...]]]></description>
			<content:encoded><![CDATA[<p>表題のとおり、去年のこの時期にRuby始めたなーとか思いながらぼちぼちいじってます。</p>
<h3>変数型</h3>
<ul>
<li>変数は頭が大文字。</li>
<li>一回決めた変数は上書きできない。</li>
<li>数
<ul>
<li>数。 <code>3 / 2</code> とかってすれば勝手に少数とかになる</li>
</ul>
</li>
<li>アトム
<ul>
<li>Rubyで言うシンボル。小文字で始めると勝手にアトム。</li>
</ul>
</li>
<li>タプル
<ul>
<li>組。数が変わらない。テュープル。</li>
</ul>
</li>
<li>リスト
<ul>
<li>配列。長さが可変。<code> [ Head | Tail ]</code> とかやって頭だけ取り出したりできる。Lispのcar/cdrみたいなイメージ？</li>
<li>pythonも同じ名前ですっけ？</li>
</ul>
</li>
<li>文字列
<ul>
<li>は、ただのリスト。</li>
<li>よく調べてないけど日本語扱うの大変みたいね？</li>
</ul>
</li>
<li>レコード
<ul>
<li>タプルを便利にした感じ？（無茶なイメージ）</li>
</ul>
</li>
</ul>
<h3>制御構造とか</h3>
<ul>
<li>パターンマッチとガードが大事っぽい</li>
<li><code>if</code> はガード</li>
<li><code>case</code> はパターンマッチ＋ガード</li>
</ul>
<h3>関数</h3>
<ul>
<li>moduleは関数をまとめたものと考えて良さそう（Ruby脳？）</li>
<li>引数のパターンマッチで呼び出す手続きを変えられるっぽい。よく知らないんですけど、Javaのポリモーフィズムみたいなの？</li>
<li>とりあえず５分で書いた適当なモジュール：</li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="erlang" style="font-family:monospace;"><span style="color: #014ea4;">-</span><span style="color: #5400b3;">module</span><span style="color: #109ab8;">&#40;</span>mathtest<span style="color: #109ab8;">&#41;</span><span style="color: #6bb810;">.</span>
<span style="color: #014ea4;">-</span><span style="color: #5400b3;">export</span><span style="color: #109ab8;">&#40;</span><span style="color: #109ab8;">&#91;</span>tasu<span style="color: #014ea4;">/</span><span style="color: #ff9600;">2</span><span style="color: #6bb810;">,</span> hiku<span style="color: #014ea4;">/</span><span style="color: #ff9600;">2</span><span style="color: #6bb810;">,</span> kakeru<span style="color: #014ea4;">/</span><span style="color: #ff9600;">2</span><span style="color: #6bb810;">,</span> triangle_area<span style="color: #014ea4;">/</span><span style="color: #ff9600;">2</span><span style="color: #6bb810;">,</span> circle_area<span style="color: #014ea4;">/</span><span style="color: #ff9600;">1</span><span style="color: #109ab8;">&#93;</span><span style="color: #109ab8;">&#41;</span><span style="color: #6bb810;">.</span>
&nbsp;
<span style="color: #ff3c00;">tasu</span><span style="color: #109ab8;">&#40;</span><span style="color: #45b3e6;">A</span><span style="color: #6bb810;">,</span> <span style="color: #45b3e6;">B</span><span style="color: #109ab8;">&#41;</span> <span style="color: #6bb810;">-&gt;</span>
 <span style="color: #45b3e6;">A</span> <span style="color: #014ea4;">+</span> <span style="color: #45b3e6;">B</span><span style="color: #6bb810;">.</span>
&nbsp;
<span style="color: #ff3c00;">hiku</span><span style="color: #109ab8;">&#40;</span><span style="color: #45b3e6;">A</span><span style="color: #6bb810;">,</span> <span style="color: #45b3e6;">B</span><span style="color: #109ab8;">&#41;</span> <span style="color: #6bb810;">-&gt;</span>
 <span style="color: #45b3e6;">A</span> <span style="color: #014ea4;">-</span> <span style="color: #45b3e6;">B</span><span style="color: #6bb810;">.</span>
&nbsp;
<span style="color: #ff3c00;">kakeru</span><span style="color: #109ab8;">&#40;</span><span style="color: #45b3e6;">A</span><span style="color: #6bb810;">,</span> <span style="color: #45b3e6;">B</span><span style="color: #109ab8;">&#41;</span> <span style="color: #6bb810;">-&gt;</span>
 <span style="color: #45b3e6;">A</span> <span style="color: #014ea4;">*</span> <span style="color: #45b3e6;">B</span><span style="color: #6bb810;">.</span>
&nbsp;
<span style="color: #ff3c00;">triangle_area</span><span style="color: #109ab8;">&#40;</span><span style="color: #45b3e6;">Base</span><span style="color: #6bb810;">,</span> <span style="color: #45b3e6;">Height</span><span style="color: #109ab8;">&#41;</span> <span style="color: #6bb810;">-&gt;</span>
 <span style="color: #45b3e6;">Base</span> <span style="color: #014ea4;">*</span> <span style="color: #45b3e6;">Height</span> <span style="color: #014ea4;">/</span> <span style="color: #ff9600;">2.</span>
&nbsp;
<span style="color: #ff3c00;">circle_area</span><span style="color: #109ab8;">&#40;</span><span style="color: #45b3e6;">Radius</span><span style="color: #109ab8;">&#41;</span> <span style="color: #6bb810;">-&gt;</span>
 <span style="color: #45b3e6;">Radius</span> <span style="color: #014ea4;">*</span> <span style="color: #45b3e6;">Radius</span> <span style="color: #014ea4;">*</span> 3<span style="color: #6bb810;">.</span>14<span style="color: #6bb810;">.</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">udzura<span style="color: #000000; font-weight: bold;">@</span>ubuntu-vaio:~<span style="color: #000000; font-weight: bold;">/</span>dev$ erl
Erlang R13B01 <span style="color: #7a0874; font-weight: bold;">&#40;</span>erts-5.7.2<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">source</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>smp:<span style="color: #000000;">2</span>:<span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>rq:<span style="color: #000000;">2</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>async-threads:<span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span>kernel-poll:<span style="color: #c20cb9; font-weight: bold;">false</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
&nbsp;
Eshell V5.7.2  <span style="color: #7a0874; font-weight: bold;">&#40;</span>abort with ^G<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">&gt;</span> c<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #ff0000;">&quot;mathtest.erl&quot;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>.
<span style="color: #7a0874; font-weight: bold;">&#123;</span>ok,mathtest<span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> mathtest:kakeru<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span>, <span style="color: #000000;">5</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>.
<span style="color: #000000;">10</span>
<span style="color: #000000;">3</span><span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000;">3</span><span style="color: #000000; font-weight: bold;">&gt;</span> mathtest:hiku<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">2</span>, <span style="color: #000000;">5</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>.
<span style="color: #660033;">-3</span>
<span style="color: #000000;">4</span><span style="color: #000000; font-weight: bold;">&gt;</span> mathtest:triangle_area<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">10</span>, <span style="color: #000000;">8.5</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>.
<span style="color: #000000;">42.5</span>
<span style="color: #000000;">5</span><span style="color: #000000; font-weight: bold;">&gt;</span> mathtest:circle_area<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">20</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000;">5</span><span style="color: #000000; font-weight: bold;">&gt;</span> .
<span style="color: #000000;">1256.0</span>
<span style="color: #000000;">6</span><span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

<h3>その他</h3>
<ul>
<li><code>map/foreach/foldl</code> とか使えるとそれっぽくなりそうな</li>
<li>プロセスをつくるのが、ちょっと読んだ感じではとても簡単そうで、操作も簡単そう。プロセスが生き物のようだわ</li>
<li>LLな人は、そのLLが並列処理とかに弱い場合、補完する意味でErlangとかやるといいのかもねって少し思う。</li>
<li>よいサイト（１）：<a href="http://www.scribd.com/doc/45477/Thinking-in-Erlang-Japanese-version">Thinking in Erlang(Japanese)</a></li>
<li>よいサイト（２）：<a href="http://erlangworld.web.fc2.com/">Erlang World</a></li>
</ul>
<h3>＊　＊　＊</h3>
<p>まあゆっくりやってみます。</p>
<p>↓の高い本が欲しいので、誰かクリスマスプレゼントでください。</p>
<div class="tmkm-amazon-view">
	<p><a href="http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Erlang-Joe-Armstrong/dp/4274067149%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4274067149"><img src="http://ecx.images-amazon.com/images/I/41jkFwNcvPL._SL160_.jpg" border="0" alt="" /></a></p>
	<p><a href="http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0Erlang-Joe-Armstrong/dp/4274067149%3FSubscriptionId%3DAKIAI2SE5CBGHF3E5T4Q%26tag%3Dudzura1984-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4274067149">プログラミングErlang</a></p>
	<p><em>著者／訳者：</em>Joe Armstrong</p>
	<p><em>出版社：</em>オーム社( 2008-02-23 )</p>
	<p>単行本（ソフトカバー） ( 480 ページ )</p>
<hr class="tmkm-amazon-clear" /></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.udzura.jp/2009/12/19/my-hello-erlang-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.udzura.jp/2009/12/19/my-hello-erlang-world/" />
	</item>
	</channel>
</rss>
