<?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>sikios</title>
	<atom:link href="http://sikios.com/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://sikios.com/wordpress</link>
	<description>C++とかC#とか</description>
	<lastBuildDate>Fri, 05 Mar 2010 16:15:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>F# メモ Option</title>
		<link>http://sikios.com/wordpress/20100305/f-%e3%83%a1%e3%83%a2-option/</link>
		<comments>http://sikios.com/wordpress/20100305/f-%e3%83%a1%e3%83%a2-option/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 18:23:20 +0000</pubDate>
		<dc:creator>rei</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sikios.com/wordpress/?p=1129</guid>
		<description><![CDATA[Option型
C#でいうNullable型のようなもので、値を持たないことも表せるようになる。
引数 x が自然数なら x を、負の数なら None (値を持たない) を返す。
&#62; let natural x = ]]></description>
			<content:encoded><![CDATA[<h3>Option型</h3>
<p>C#でいうNullable型のようなもので、値を持たないことも表せるようになる。</p>
<p>引数 x が自然数なら x を、負の数なら <em>None</em> (値を持たない) を返す。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> natural x <span style="color: #a52a2a;">=</span><br />
&nbsp; &nbsp; <span style="color: #06c; font-weight: bold;">if</span> x <span style="color: #a52a2a;">&gt;=</span> 0 <span style="color: #06c; font-weight: bold;">then</span> Some x<br />
&nbsp; &nbsp; <span style="color: #06c; font-weight: bold;">else</span> None<span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> natural <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">-&gt;</span> int <span style="color: #06c; font-weight: bold;">option</span></div></div>
<hr />
<table style="width: 50%;">
<tr>
<td  class="nowrap"><strong>Option.get</strong><br /><em>&#8216;a option -> &#8216;a</em></td>
</tr>
</table>
<p>Option型 は Some (値を持っている) か None (値を持たない) のいずれかを表し、<br />
Some の場合は値を取得できる。<br />
None に対し <em>Option.get</em> を行うと例外が発生する。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> a <span style="color: #a52a2a;">=</span> natural 100<br />
<span style="color: #06c; font-weight: bold;">let</span> b <span style="color: #a52a2a;">=</span> natural <span style="color: #a52a2a;">-</span>100<br />
<span style="color: #06c; font-weight: bold;">let</span> c <span style="color: #a52a2a;">=</span> <span style="color: #06c; font-weight: bold;">Option</span><span style="color: #a52a2a;">.</span><span style="color: #060;">get</span> a<span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> a <span style="color: #a52a2a;">:</span> int <span style="color: #06c; font-weight: bold;">option</span> <span style="color: #a52a2a;">=</span> Some 100<br />
<span style="color: #06c; font-weight: bold;">val</span> b <span style="color: #a52a2a;">:</span> int <span style="color: #06c; font-weight: bold;">option</span> <span style="color: #a52a2a;">=</span> None<br />
<span style="color: #06c; font-weight: bold;">val</span> c <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">=</span> <span style="color: #c6c;">100</span></div></div>
<hr />
<table style="width: 50%;">
<tr>
<td  class="nowrap"><strong>Option.isSome</strong><br /><em>&#8216;a option -> bool</em></td>
</tr>
</table>
<p>引数が Some なら true を、None なら false を返す。</p>
<hr />
<table style="width: 50%;">
<tr>
<td  class="nowrap"><strong>Option.isNone</strong><br /><em>&#8216;a option -> bool</em></td>
</tr>
</table>
<p>引数が Some なら true を、None なら false を返す。</p>
]]></content:encoded>
			<wfw:commentRss>http://sikios.com/wordpress/20100305/f-%e3%83%a1%e3%83%a2-option/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F# メモ List (2)</title>
		<link>http://sikios.com/wordpress/20100226/f-%e3%83%a1%e3%83%a2-list-2/</link>
		<comments>http://sikios.com/wordpress/20100226/f-%e3%83%a1%e3%83%a2-list-2/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 13:16:49 +0000</pubDate>
		<dc:creator>rei</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sikios.com/wordpress/?p=960</guid>
		<description><![CDATA[リスト関数


関数関数の型
簡単な説明


List.length&#8216;a list -> int
要素の数を取得する


List.head&#8216;a list -> &#8216;a
先頭の要素を取得 ]]></description>
			<content:encoded><![CDATA[<h3>リスト関数</h3>
<table>
<thead>
<td><strong>関数</strong><br /><em>関数の型</em></td>
<td>簡単な説明</td>
</thead>
<tr>
<td class="nowrap"><strong>List.length</strong><br /><em>&#8216;a list -> in</em>t</td>
<td>要素の数を取得する</td>
</tr>
<tr>
<td class="nowrap"><strong>List.head</strong><br /><em>&#8216;a list -> &#8216;a</em></td>
<td>先頭の要素を取得する</td>
</tr>
<tr>
<td class="nowrap"><strong>List.tail</strong><br /><em>&#8216;a list -> &#8216;a list</em></td>
<td>先頭の要素を除いたリストを取得する</td>
</tr>
<tr>
<td class="nowrap"><strong>List.exists</strong><br /><em>(&#8216;a -> bool) -> &#8216;a list -> bool</em></td>
<td>条件に合う要素が存在するか調べる</td>
</tr>
<tr>
<td class="nowrap"><strong>List.rev</strong><br /><em>&#8216;a list -> &#8216;a list</em></td>
<td>順番を逆にしたリストを取得する</td>
</tr>
<tr>
<td class="nowrap"><strong>List.tryFind</strong><br /><em>(&#8216;a -> bool) -> &#8216;a list -> &#8216;a option</em></td>
<td>条件に合う要素を取得する<br />存在しない場合はNoneを返す</td>
</tr>
<tr>
<td class="nowrap"><strong>List.zip</strong><br /"><em>&#8216;a list -> &#8216;b list -> (&#8216;a * &#8216;b) list</em></td>
<td>2つのリストの要素を組み合わせ、<br />タプルのリストを作成する</td>
</tr>
<tr>
<td class="nowrap"><strong>List.filter</strong><br /><em>(&#8216;a -> bool) &#8216;a list -> &#8216;a list</em></td>
<td>条件に合う要素のみを含むリストを作成する</td>
</tr>
<tr>
<td class="nowrap"><strong>List.partition</strong><br /><em>(&#8216;a -> bool) -> &#8216;a list -> (&#8216;a list * &#8216;a list)</em></td>
<td>条件に合う要素のみを含むリストと<br />それ以外のリストのタプルを作成する</td>
</tr>
</table>
<p>他にも多数あります。<a href="http://msdn.microsoft.com/en-us/library/ee353738(VS.100).aspx" target="_blank">msdn</a></p>
<hr />
<h3>集約関数 (Aggregate Operators)</h3>
<p>リストなどのコレクションには個々の要素に対して何らかの操作を行う関数が多数用意されている。</p>
<table style="width: 50%;">
<tr>
<td  class="nowrap"><strong>List.map</strong><br /><em>(&#8216;a -> &#8216;b) -> &#8216;a list -> &#8216;b list</em></td>
</tr>
</table>
<p> &#8216;a -> &#8216;b 変換関数をすべての要素に適用し、&#8217;b list を作成する。</p>
<p>例：整数のリストを基に、文字列のリストを作成する。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> tostr x <span style="color: #a52a2a;">=</span> sprintf <span style="color: #3cb371;">&quot;%d&quot;</span> x<br />
<span style="color: #06c; font-weight: bold;">let</span> a <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span>1<span style="color: #a52a2a;">..</span>10<span style="color: #6c6;">&#93;</span><br />
<span style="color: #06c; font-weight: bold;">let</span> b <span style="color: #a52a2a;">=</span> <span style="color: #06c; font-weight: bold;">List</span><span style="color: #a52a2a;">.</span><span style="color: #060;">map</span> tostr a<span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> tostr <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">-&gt;</span> string<br />
<span style="color: #06c; font-weight: bold;">val</span> a <span style="color: #a52a2a;">:</span> int list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">1</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">2</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">3</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">4</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">5</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">6</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">7</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">8</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">9</span><span style="color: #a52a2a;">;</span> 10<span style="color: #6c6;">&#93;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> b <span style="color: #a52a2a;">:</span> string list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #3cb371;">&quot;1&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;2&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;3&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;4&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;5&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;6&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;7&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;8&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;9&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;10&quot;</span><span style="color: #6c6;">&#93;</span></div></div>
<hr />
<table style="width: 50%;">
<tr>
<td  class="nowrap"><strong>List.reduce</strong><br /><em>(&#8216;a -> &#8216;a -> &#8216;a) ->&#8217;a list -> &#8216;a</em></td>
</tr>
</table>
<p>リストの要素を辿りながら &#8216;a 型のアキュムレータを構築していく関数。<br />
(&#8216;a -> &#8216;a -> &#8216;a) の部分は現在のアキュムレータとリストの要素を引数とし、新たなアキュムレータを作成する関数。</p>
<p>例：1から5までの整数の積を求める。(ついでに、アキュムレータの確認を行う)</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> multiple a b <span style="color: #a52a2a;">=</span><br />
&nbsp; &nbsp; printfn <span style="color: #3cb371;">&quot;// %3d = %2d * %d&quot;</span> <span style="color: #6c6;">&#40;</span>a<span style="color: #a52a2a;">*</span>b<span style="color: #6c6;">&#41;</span> a b<br />
&nbsp; &nbsp; a <span style="color: #a52a2a;">*</span> b<br />
<span style="color: #06c; font-weight: bold;">let</span> b <span style="color: #a52a2a;">=</span> <span style="color: #06c; font-weight: bold;">List</span><span style="color: #a52a2a;">.</span><span style="color: #060;">reduce</span> multiple <span style="color: #6c6;">&#91;</span>1<span style="color: #a52a2a;">..</span>5<span style="color: #6c6;">&#93;</span><span style="color: #a52a2a;">;;</span><br />
<span style="color: #a52a2a;">//</span> &nbsp; 2 <span style="color: #a52a2a;">=</span> &nbsp;1 <span style="color: #a52a2a;">*</span> 2<br />
<span style="color: #a52a2a;">//</span> &nbsp; 6 <span style="color: #a52a2a;">=</span> &nbsp;2 <span style="color: #a52a2a;">*</span> 3<br />
<span style="color: #a52a2a;">//</span> &nbsp;24 <span style="color: #a52a2a;">=</span> &nbsp;6 <span style="color: #a52a2a;">*</span> 4<br />
<span style="color: #a52a2a;">//</span> 120 <span style="color: #a52a2a;">=</span> 24 <span style="color: #a52a2a;">*</span> 5<br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> multiple <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">-&gt;</span> int <span style="color: #a52a2a;">-&gt;</span> int<br />
<span style="color: #06c; font-weight: bold;">val</span> b <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">=</span> <span style="color: #c6c;">120</span></div></div>
<p>上の例のように、リストの先頭要素がアキュムレータの初期値となる。</p>
<hr />
<table style="width: 50%;">
<tr>
<td  class="nowrap"><strong>List.fold</strong><br /><em>(&#8216;acc -> &#8216;b -> &#8216;acc) -> &#8216;acc -> &#8216;b list -> &#8216;acc</em></td>
</tr>
</table>
<p>リストの要素を辿りながら任意の型のアキュムレータを構築していく関数。<br />
List.reduceを汎用的にしたもの。<br />
アキュムレータの初期値を与える必要がある。</p>
<p>例：リスト中の文字数の合計を取得する</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> Count acc <span style="color: #6c6;">&#40;</span>str<span style="color: #a52a2a;">:</span>string<span style="color: #6c6;">&#41;</span> <span style="color: #a52a2a;">=</span> acc <span style="color: #a52a2a;">+</span> str<span style="color: #a52a2a;">.</span><span style="color: #060;">Length</span><br />
<span style="color: #06c; font-weight: bold;">let</span> dow <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><br />
&nbsp; &nbsp; <span style="color: #3cb371;">&quot;Sunday&quot;</span><span style="color: #a52a2a;">;</span><br />
&nbsp; &nbsp; <span style="color: #3cb371;">&quot;Monday&quot;</span><span style="color: #a52a2a;">;</span><br />
&nbsp; &nbsp; <span style="color: #3cb371;">&quot;Tuesday&quot;</span><span style="color: #a52a2a;">;</span><br />
&nbsp; &nbsp; <span style="color: #3cb371;">&quot;Wednesday&quot;</span><br />
<span style="color: #6c6;">&#93;</span><br />
<span style="color: #06c; font-weight: bold;">let</span> total <span style="color: #a52a2a;">=</span> <span style="color: #06c; font-weight: bold;">List</span><span style="color: #a52a2a;">.</span><span style="color: #060;">fold</span> Count 0 dow<span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> Count <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">-&gt;</span> string <span style="color: #a52a2a;">-&gt;</span> int<br />
<span style="color: #06c; font-weight: bold;">val</span> dow <span style="color: #a52a2a;">:</span> string list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #3cb371;">&quot;Sunday&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;Monday&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;Tuesday&quot;</span><span style="color: #a52a2a;">;</span> <span style="color: #3cb371;">&quot;Wednesday&quot;</span><span style="color: #6c6;">&#93;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> total <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">=</span> <span style="color: #c6c;">28</span></div></div>
<hr />
<table style="width: 50%;">
<tr>
<td  class="nowrap""><strong>List.iter</strong><br /><em>(&#8216;a -> unit) -> &#8216;a list -> unit</em></td>
</tr>
</table>
<p>指定された関数を、リストの各要素に対して順次実行する関数。</p>
]]></content:encoded>
			<wfw:commentRss>http://sikios.com/wordpress/20100226/f-%e3%83%a1%e3%83%a2-list-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F# メモ List (1)</title>
		<link>http://sikios.com/wordpress/20100226/f-%e3%83%a1%e3%83%a2-list-1/</link>
		<comments>http://sikios.com/wordpress/20100226/f-%e3%83%a1%e3%83%a2-list-1/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 16:57:46 +0000</pubDate>
		<dc:creator>rei</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sikios.com/wordpress/?p=921</guid>
		<description><![CDATA[基本

リストの作成。
[] で囲み、要素は ; で区切る。
&#62; let odds = &#91;1;3;5;7;9&#93;
let evens = &#91;2;4;6;8;10&#93;;;

val odd ]]></description>
			<content:encoded><![CDATA[<h3>基本</h3>
<hr />
リストの作成。<br />
[] で囲み、要素は ; で区切る。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> odds <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">1</span><span style="color: #a52a2a;">;</span><span style="color: #c6c;">3</span><span style="color: #a52a2a;">;</span><span style="color: #c6c;">5</span><span style="color: #a52a2a;">;</span><span style="color: #c6c;">7</span><span style="color: #a52a2a;">;</span>9<span style="color: #6c6;">&#93;</span><br />
<span style="color: #06c; font-weight: bold;">let</span> evens <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">2</span><span style="color: #a52a2a;">;</span><span style="color: #c6c;">4</span><span style="color: #a52a2a;">;</span><span style="color: #c6c;">6</span><span style="color: #a52a2a;">;</span><span style="color: #c6c;">8</span><span style="color: #a52a2a;">;</span>10<span style="color: #6c6;">&#93;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> odds <span style="color: #a52a2a;">:</span> int list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">1</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">3</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">5</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">7</span><span style="color: #a52a2a;">;</span> 9<span style="color: #6c6;">&#93;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> evens <span style="color: #a52a2a;">:</span> int list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">2</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">4</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">6</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">8</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">10</span><span style="color: #6c6;">&#93;</span></div></div>
<hr />
<p>リストの追加。<br />
@ はリストの結合を行う。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> appended <span style="color: #a52a2a;">=</span> odds @ evens<span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> appended <span style="color: #a52a2a;">:</span> int list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">1</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">3</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">5</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">7</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">9</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">2</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">4</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">6</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">8</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">10</span><span style="color: #6c6;">&#93;</span></div></div>
<hr />
<p>要素の追加。<br />
:: はリストの先頭に要素を追加する。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> 0 <span style="color: #a52a2a;">::</span> appended<span style="color: #a52a2a;">;;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> it <span style="color: #a52a2a;">:</span> int list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">0</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">1</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">3</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">5</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">7</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">9</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">2</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">4</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">6</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">8</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">10</span><span style="color: #6c6;">&#93;</span></div></div>
<hr />
<p>範囲を指定する。<br />
1から10までの整数のリストを作成する。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> x <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span>1<span style="color: #a52a2a;">..</span>10<span style="color: #6c6;">&#93;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> x <span style="color: #a52a2a;">:</span> int list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">1</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">2</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">3</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">4</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">5</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">6</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">7</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">8</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">9</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">10</span><span style="color: #6c6;">&#93;</span></div></div>
<hr />
<p>範囲と間隔を指定する。<br />
1から10までの奇数のリストを作成する。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> x <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span>1<span style="color: #a52a2a;">..</span>2<span style="color: #a52a2a;">..</span>10<span style="color: #6c6;">&#93;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> x <span style="color: #a52a2a;">:</span> int list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">1</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">3</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">5</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">7</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">9</span><span style="color: #6c6;">&#93;</span></div></div>
<hr />
<p>要素を持たないリスト。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> emptylist <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #6c6;">&#93;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> emptylist <span style="color: #a52a2a;">:</span> <span style="color: #a52a2a;">'</span>a list</div></div>
<hr />
<h3>yield</h3>
<p>リストの要素を何らかの手続きで決定させることができる。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> near x <span style="color: #a52a2a;">=</span><br />
&nbsp; &nbsp; <span style="color: #6c6;">&#91;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; yield x <span style="color: #a52a2a;">-</span> 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; yield x<br />
&nbsp; &nbsp; &nbsp; &nbsp; yield x <span style="color: #a52a2a;">+</span> 1<br />
&nbsp; &nbsp; <span style="color: #6c6;">&#93;</span><br />
<span style="color: #06c; font-weight: bold;">let</span> nearTen <span style="color: #a52a2a;">=</span> near <span style="color: #c6c;">10</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> near <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">-&gt;</span> int list<br />
<span style="color: #06c; font-weight: bold;">val</span> nearTen <span style="color: #a52a2a;">:</span> int list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">9</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">10</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">11</span><span style="color: #6c6;">&#93;</span></div></div>
<p>引数の値とその前後の値を要素とするリストを返す関数 near を作成し、10を与えている。<br />
上から順に評価されるので、10-1=9、10、10+1=11が要素となる。</p>
<p>[] の中には条件式やループ等も使用できる。<br />
30以下の素数のリストを作成する例。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> primes <span style="color: #a52a2a;">=</span> <br />
&nbsp; &nbsp; <span style="color: #6c6;">&#91;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #06c; font-weight: bold;">let</span> factors n <span style="color: #a52a2a;">=</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #6c6;">&#91;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #06c; font-weight: bold;">for</span> i <span style="color: #06c; font-weight: bold;">in</span> 2<span style="color: #a52a2a;">..</span><span style="color: #060;">n</span><span style="color: #a52a2a;">-</span>1 <span style="color: #06c; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #06c; font-weight: bold;">if</span> n <span style="color: #a52a2a;">%</span> i <span style="color: #a52a2a;">=</span> 0 <span style="color: #06c; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield i<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #6c6;">&#93;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #06c; font-weight: bold;">for</span> i <span style="color: #06c; font-weight: bold;">in</span> 2<span style="color: #a52a2a;">..</span>30 <span style="color: #06c; font-weight: bold;">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #06c; font-weight: bold;">if</span> <span style="color: #06c; font-weight: bold;">List</span><span style="color: #a52a2a;">.</span><span style="color: #060;">length</span> <span style="color: #6c6;">&#40;</span>factors i<span style="color: #6c6;">&#41;</span> <span style="color: #a52a2a;">=</span> 0 <span style="color: #06c; font-weight: bold;">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; yield i<br />
&nbsp; &nbsp; <span style="color: #6c6;">&#93;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> primes <span style="color: #a52a2a;">:</span> int list <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #c6c;">2</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">3</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">5</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">7</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">11</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">13</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">17</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">19</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">23</span><span style="color: #a52a2a;">;</span> <span style="color: #c6c;">29</span><span style="color: #6c6;">&#93;</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://sikios.com/wordpress/20100226/f-%e3%83%a1%e3%83%a2-list-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F# メモ コメント</title>
		<link>http://sikios.com/wordpress/20100225/f-%e3%83%a1%e3%83%a2-%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88/</link>
		<comments>http://sikios.com/wordpress/20100225/f-%e3%83%a1%e3%83%a2-%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 10:37:58 +0000</pubDate>
		<dc:creator>rei</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sikios.com/wordpress/?p=938</guid>
		<description><![CDATA[行コメント
C++と同じで // から行末までがコメントとして扱われる。

ブロックコメント
(* と *) で囲まれた部分がコメントとなる。
このブロックコメントはネストすることができるので、
123456(*
&#038;nb ]]></description>
			<content:encoded><![CDATA[<h3><a id="line">行コメント</a></h3>
<p>C++と同じで // から行末までがコメントとして扱われる。</p>
<hr />
<h3><a id="block">ブロックコメント</a></h3>
<p>(* と *) で囲まれた部分がコメントとなる。</p>
<p>このブロックコメントはネストすることができるので、</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #5d478b; font-style: italic;">(*<br />
&nbsp; &nbsp; outer comment<br />
&nbsp; &nbsp; (*<br />
&nbsp; &nbsp; &nbsp; &nbsp; inner comment<br />
&nbsp; &nbsp; *)</span><br />
<span style="color: #a52a2a;">*</span><span style="color: #6c6;">&#41;</span></div></td></tr></tbody></table></div>
<p>は正しい。しかし、</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #5d478b; font-style: italic;">(*<br />
&nbsp; &nbsp; outer comment<br />
&nbsp; &nbsp; (*<br />
&nbsp; &nbsp; &nbsp; &nbsp; inner comment<br />
&nbsp; &nbsp; <br />
*)</span></div></td></tr></tbody></table></div>
<p>はコンパイルエラーとなる。</p>
]]></content:encoded>
			<wfw:commentRss>http://sikios.com/wordpress/20100225/f-%e3%83%a1%e3%83%a2-%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F# メモ タプル</title>
		<link>http://sikios.com/wordpress/20100225/f-%e3%83%a1%e3%83%a2-%e3%82%bf%e3%83%97%e3%83%ab/</link>
		<comments>http://sikios.com/wordpress/20100225/f-%e3%83%a1%e3%83%a2-%e3%82%bf%e3%83%97%e3%83%ab/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 21:39:25 +0000</pubDate>
		<dc:creator>rei</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sikios.com/wordpress/?p=899</guid>
		<description><![CDATA[タプルは複数の値を一つの組として扱う機能。
int と string のタプルの型は int * string と表される。
コンマで区切ることでタプルの作成や要素の取得ができる。
&#62; let t = &#40;1 ]]></description>
			<content:encoded><![CDATA[<p>タプルは複数の値を一つの組として扱う機能。<br />
int と string のタプルの型は int * string と表される。<br />
コンマで区切ることでタプルの作成や要素の取得ができる。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> t <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#40;</span><span style="color: #c6c;">1234</span>, <span style="color: #3cb371;">&quot;1234&quot;</span><span style="color: #6c6;">&#41;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> t <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">*</span> string <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#40;</span><span style="color: #c6c;">1234</span>, <span style="color: #3cb371;">&quot;1234&quot;</span><span style="color: #6c6;">&#41;</span><br />
<br />
<span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> d, s <span style="color: #a52a2a;">=</span> t<span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> s <span style="color: #a52a2a;">:</span> string <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;1234&quot;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> d <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">=</span> <span style="color: #c6c;">1234</span></div></div>
<p>タプルを関数の引数にするには以下のように括弧で括る必要がある。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> sum <span style="color: #6c6;">&#40;</span>a, b, c<span style="color: #6c6;">&#41;</span> <span style="color: #a52a2a;">=</span> a <span style="color: #a52a2a;">+</span> b <span style="color: #a52a2a;">+</span> c<br />
<br />
<span style="color: #06c; font-weight: bold;">let</span> x <span style="color: #a52a2a;">=</span> sum <span style="color: #6c6;">&#40;</span>12, 23, 34<span style="color: #6c6;">&#41;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> sum <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">*</span> int <span style="color: #a52a2a;">*</span> int <span style="color: #a52a2a;">-&gt;</span> int<br />
<span style="color: #06c; font-weight: bold;">val</span> x <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">=</span> <span style="color: #c6c;">69</span></div></div>
]]></content:encoded>
			<wfw:commentRss>http://sikios.com/wordpress/20100225/f-%e3%83%a1%e3%83%a2-%e3%82%bf%e3%83%97%e3%83%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F# メモ unit</title>
		<link>http://sikios.com/wordpress/20100224/f-%e3%83%a1%e3%83%a2-unit/</link>
		<comments>http://sikios.com/wordpress/20100224/f-%e3%83%a1%e3%83%a2-unit/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 12:26:33 +0000</pubDate>
		<dc:creator>rei</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sikios.com/wordpress/?p=875</guid>
		<description><![CDATA[unit は値を持たないことを表す型で、CやC#でいう void のようなもの。
() は unit である。
&#62; let x = &#40;&#41;;;

val x : unit = &#40;&#41;
i ]]></description>
			<content:encoded><![CDATA[<p><em>unit</em> は値を持たないことを表す型で、CやC#でいう <em>void</em> のようなもの。<br />
() は <em>unit</em> である。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> x <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#40;</span><span style="color: #6c6;">&#41;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> x <span style="color: #a52a2a;">:</span> unit <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#40;</span><span style="color: #6c6;">&#41;</span></div></div>
<p><em>ignore</em> は非 unit な式を unit に変換する関数。<br />
つまり値を使わないことを明示する関数。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">ignore</span><span style="color: #6c6;">&#40;</span>2<span style="color: #a52a2a;">*</span>2<span style="color: #6c6;">&#41;</span><span style="color: #a52a2a;">;;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> it <span style="color: #a52a2a;">:</span> unit <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#40;</span><span style="color: #6c6;">&#41;</span></div></div>
<p>や</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> 2<span style="color: #a52a2a;">*</span>2 <span style="color: #a52a2a;">|&gt;</span> <span style="color: #06c; font-weight: bold;">ignore</span><span style="color: #a52a2a;">;;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> it <span style="color: #a52a2a;">:</span> unit <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#40;</span><span style="color: #6c6;">&#41;</span></div></div>
<p>のように使用できる。</p>
]]></content:encoded>
			<wfw:commentRss>http://sikios.com/wordpress/20100224/f-%e3%83%a1%e3%83%a2-unit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F# メモ 関数</title>
		<link>http://sikios.com/wordpress/20100222/f-%e3%83%a1%e3%83%a2-%e9%96%a2%e6%95%b0/</link>
		<comments>http://sikios.com/wordpress/20100222/f-%e3%83%a1%e3%83%a2-%e9%96%a2%e6%95%b0/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 04:28:47 +0000</pubDate>
		<dc:creator>rei</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sikios.com/wordpress/?p=857</guid>
		<description><![CDATA[定義
2つの int を引数に取り、その和を返す関数 add は以下のように表す。
&#62; let add a b = a + b;;

val add : int -&#62; int -&#62; int
実行してみる ]]></description>
			<content:encoded><![CDATA[<h3>定義</h3>
<p>2つの int を引数に取り、その和を返す関数 add は以下のように表す。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> add a b <span style="color: #a52a2a;">=</span> a <span style="color: #a52a2a;">+</span> b<span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> add <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">-&gt;</span> int <span style="color: #a52a2a;">-&gt;</span> int</div></div>
<p>実行してみる。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> add 1 <span style="color: #c6c;">2</span><span style="color: #a52a2a;">;;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> it <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">=</span> <span style="color: #c6c;">3</span></div></div>
<hr />
<h3>関数の型</h3>
<p>float -> int は 「float を引数に取り、int を返す関数」と読む。<br />
上の add の場合 int -> int -> int が関数の型で、<strong>「intを引数に取り、「intを引数に取り、intを返す関数」を返す関数」</strong>と読む。</p>
<hr />
<h3>型推論</h3>
<p>上の add 関数のように引数の型が複数考えられるとき、最初に使用されたときの引数を基に関数の型が決まる。(ただし、対話モードでは一旦 ;; で終了した時点で確定する)</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> add 1<span style="color: #a52a2a;">.</span>0 <span style="color: #c6c;">2.0</span><span style="color: #a52a2a;">;;</span><br />
<br />
&nbsp; add 1<span style="color: #a52a2a;">.</span>0 <span style="color: #c6c;">2.0</span><span style="color: #a52a2a;">;;</span><br />
&nbsp; <span style="color: #a52a2a;">----^^^</span><br />
<br />
<span style="color: #06c; font-weight: bold;">stdin</span><span style="color: #6c6;">&#40;</span>3,5<span style="color: #6c6;">&#41;</span><span style="color: #a52a2a;">:</span> error FS0001<span style="color: #a52a2a;">:</span> This expression was expected <span style="color: #06c; font-weight: bold;">to</span> have <span style="color: #06c; font-weight: bold;">type</span><br />
&nbsp; &nbsp; int &nbsp; &nbsp;<br />
but here has <span style="color: #06c; font-weight: bold;">type</span><br />
&nbsp; &nbsp; <span style="color: #06c; font-weight: bold;">float</span></div></div>
<p>のように float を引数とすることはできない。<br />
これは関数 add が int -> int -> int と推論されているため。<br />
float のみを渡せるようにするには、以下のように明示的に型を指定する。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> addf <span style="color: #6c6;">&#40;</span>a<span style="color: #a52a2a;">:</span><span style="color: #06c; font-weight: bold;">float</span><span style="color: #6c6;">&#41;</span> b <span style="color: #a52a2a;">=</span> a <span style="color: #a52a2a;">+</span> b<span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> addf <span style="color: #a52a2a;">:</span> <span style="color: #06c; font-weight: bold;">float</span> <span style="color: #a52a2a;">-&gt;</span> <span style="color: #06c; font-weight: bold;">float</span> <span style="color: #a52a2a;">-&gt;</span> <span style="color: #06c; font-weight: bold;">float</span><br />
<br />
<span style="color: #a52a2a;">&gt;</span> addf 1<span style="color: #a52a2a;">.</span>0 <span style="color: #c6c;">2.0</span><span style="color: #a52a2a;">;;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> it <span style="color: #a52a2a;">:</span> <span style="color: #06c; font-weight: bold;">float</span> <span style="color: #a52a2a;">=</span> <span style="color: #c6c;">3.0</span></div></div>
<hr />
<h3>ジェネリック関数</h3>
<p><em>&#8216;a</em> のように &#8216; を付けた型を指定すると、どんな型でも引数に取ることができる関数を作ることができる。<br />
&#8216;a でも &#8216;b でも &#8216;asdfghjk でもいいらしい。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> str <span style="color: #6c6;">&#40;</span>x<span style="color: #a52a2a;">:'</span>a<span style="color: #6c6;">&#41;</span> <span style="color: #a52a2a;">=</span> x<span style="color: #a52a2a;">.</span><span style="color: #060;">ToString</span><span style="color: #6c6;">&#40;</span><span style="color: #6c6;">&#41;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> str <span style="color: #a52a2a;">:</span> <span style="color: #a52a2a;">'</span>a <span style="color: #a52a2a;">-&gt;</span> string<br />
<br />
<span style="color: #a52a2a;">&gt;</span> str<span style="color: #6c6;">&#40;</span>10<span style="color: #6c6;">&#41;</span><span style="color: #a52a2a;">;;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> it <span style="color: #a52a2a;">:</span> string <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;10&quot;</span></div></div>
<hr />
<h3>スコープ</h3>
<p>F#のスコープはインデントで表される。<br />
全くインデントされていないスコープがモジュールスコープ。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> Pow2 x <span style="color: #a52a2a;">=</span> <br />
&nbsp; &nbsp; <span style="color: #06c; font-weight: bold;">let</span> value <span style="color: #a52a2a;">=</span> x <span style="color: #a52a2a;">*</span> x<br />
&nbsp; &nbsp; value<span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> Pow2 <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">-&gt;</span> int<br />
<br />
<span style="color: #a52a2a;">&gt;</span> Pow2 <span style="color: #c6c;">10</span><span style="color: #a52a2a;">;;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> it <span style="color: #a52a2a;">:</span> int <span style="color: #a52a2a;">=</span> <span style="color: #c6c;">100</span></div></div>
<p>関数スコープの最後に評価された値がその関数の戻り値となる。</p>
]]></content:encoded>
			<wfw:commentRss>http://sikios.com/wordpress/20100222/f-%e3%83%a1%e3%83%a2-%e9%96%a2%e6%95%b0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>F# メモ 基本演算子</title>
		<link>http://sikios.com/wordpress/20100221/f-%e3%83%a1%e3%83%a2-%e5%9f%ba%e6%9c%ac%e6%bc%94%e7%ae%97%e5%ad%90/</link>
		<comments>http://sikios.com/wordpress/20100221/f-%e3%83%a1%e3%83%a2-%e5%9f%ba%e6%9c%ac%e6%bc%94%e7%ae%97%e5%ad%90/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 11:36:35 +0000</pubDate>
		<dc:creator>rei</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sikios.com/wordpress/?p=791</guid>
		<description><![CDATA[算術演算子
説明不要ですね。


演算子
意味


+
加算


-
減算


*
乗算


/
除算


**
冪算


%
剰余



数学関数
演算子ではありませんが、基本的なものなので。


関数
意味


ab ]]></description>
			<content:encoded><![CDATA[<h3>算術演算子</h3>
<p>説明不要ですね。</p>
<table style="width:300px;">
<thead>
<td>演算子</td>
<td>意味</td>
</thead>
<tr>
<td>+</td>
<td>加算</td>
</tr>
<tr>
<td>-</td>
<td>減算</td>
</tr>
<tr>
<td>*</td>
<td>乗算</td>
</tr>
<tr>
<td>/</td>
<td>除算</td>
</tr>
<tr>
<td>**</td>
<td>冪算</td>
</tr>
<tr>
<td>%</td>
<td>剰余</td>
</tr>
</table>
<hr />
<h3>数学関数</h3>
<p>演算子ではありませんが、基本的なものなので。</p>
<table style="width:300px;">
<thead>
<td>関数</td>
<td>意味</td>
</thead>
<tr>
<td>abs</td>
<td>絶対値を求める</td>
</tr>
<tr>
<td>ceil</td>
<td>整数に丸める(大きい方に)</td>
</tr>
<tr>
<td>exp</td>
<td>eの引数乗を求める</td>
</tr>
<tr>
<td>floor</td>
<td>整数に丸める(小さい方に)</td>
</tr>
<tr>
<td>sign</td>
<td>符号を求める(-1, 0 or 1)</td>
</tr>
<tr>
<td>log</td>
<td>自然対数を求める</td>
</tr>
<tr>
<td>log10</td>
<td>常用対数を求める</td>
</tr>
<tr>
<td>sqrt</td>
<td>平方根を求める</td>
</tr>
<tr>
<td>cos</td>
<td>コサインを求める</td>
</tr>
<tr>
<td>sin</td>
<td>サインを求める</td>
</tr>
<tr>
<td>tan</td>
<td>タンジェントを求める</td>
</tr>
<tr>
<td>pown</td>
<td>整数の累乗を求める</td>
</tr>
</table>
<hr />
<h3>型変換</h3>
<p>型名がそのまま変換関数のように機能する。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> int64 <span style="color: #c6c;">1234.5678</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> it <span style="color: #a52a2a;">:</span> int64 <span style="color: #a52a2a;">=</span> 1234L</div></div>
<h3>ビット演算子</h3>
<p>ちょっと特殊。</p>
<table style="width:300px;">
<thead>
<td>演算子</td>
<td>意味</td>
</thead>
<tr>
<td>&#038;&#038;&</td>
<td>AND</td>
</tr>
<tr>
<td>|||</td>
<td>OR</td>
</tr>
<tr>
<td>^^^</td>
<td>XOR</td>
</tr>
<tr>
<td>&lt;&lt;&lt;</td>
<td>左シフト</td>
</tr>
<tr>
<td>&gt;&gt;&gt;</td>
<td>右シフト</td>
</tr>
</table>
<hr />
<h3>要素へのアクセス</h3>
<p>配列や文字列の要素にアクセスする場合は .[] を使用する。<br />
慣れていないうちは . を忘れやすい。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> str <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;abc&quot;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> str <span style="color: #a52a2a;">:</span> string <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;abc&quot;</span><br />
<br />
<span style="color: #a52a2a;">&gt;</span> str<span style="color: #a52a2a;">.</span><span style="color: #6c6;">&#91;</span>1<span style="color: #6c6;">&#93;</span><span style="color: #a52a2a;">;;</span><br />
<span style="color: #06c; font-weight: bold;">val</span> it <span style="color: #a52a2a;">:</span> char <span style="color: #a52a2a;">=</span> <span style="color: #a52a2a;">'</span>b<span style="color: #a52a2a;">'</span></div></div>
<hr />
<h3>論理演算</h3>
<table style="width:330px;">
<thead>
<td>演算子</td>
<td>意味</td>
<td>例</td>
</thead>
<tr>
<td>&#038;&#038;</td>
<td>AND</td>
<td>true &#038;&#038; false = false</td>
</tr>
<tr>
<td>||</td>
<td>OR</td>
<td>true || false = true</td>
</tr>
<tr>
<td>not</td>
<td>NOT</td>
<td>not false = true</td>
</tr>
</table>
<hr />
<h3>比較演算</h3>
<p>値同士の比較を行い、<i>bool</i> 値を返す。</p>
<table style="width:330px;">
<thead>
<td>演算子</td>
<td>意味</td>
</thead>
<tr>
<td>&lt;</td>
<td>より小さいか</td>
</tr>
<tr>
<td>&lt;=</td>
<td>以下か</td>
</tr>
<tr>
<td>&gt;</td>
<td>より大きいか</td>
</tr>
<tr>
<td>&gt;=</td>
<td>以上か</td>
</tr>
<tr>
<td>=</td>
<td>同じか</td>
</tr>
<tr>
<td>&lt;&gt;</td>
<td>異なるか</td>
</tr>
</table>
<p><em>compare</em> (関数？) は第一引数の方が小さいときは -1、大きいときは 1、同じなら 0 を返す。</p>
]]></content:encoded>
			<wfw:commentRss>http://sikios.com/wordpress/20100221/f-%e3%83%a1%e3%83%a2-%e5%9f%ba%e6%9c%ac%e6%bc%94%e7%ae%97%e5%ad%90/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>F# メモ 基本型</title>
		<link>http://sikios.com/wordpress/20100220/f-%e3%83%a1%e3%83%a2-%e5%9f%ba%e6%9c%ac%e5%9e%8b/</link>
		<comments>http://sikios.com/wordpress/20100220/f-%e3%83%a1%e3%83%a2-%e5%9f%ba%e6%9c%ac%e5%9e%8b/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 09:19:45 +0000</pubDate>
		<dc:creator>rei</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sikios.com/wordpress/?p=773</guid>
		<description><![CDATA[数値型


F#型名
サフィックス
.NET型


byte
uy
System.Byte


sbyte
y
System.SByte


int16
s
System.Int16


uint16
us
System ]]></description>
			<content:encoded><![CDATA[<h3><a id="num">数値型</a></h3>
<table style="width:360px;">
<thead>
<td>F#型名</td>
<td>サフィックス</td>
<td>.NET型</td>
</thead>
<tr>
<td>byte</td>
<td>uy</td>
<td>System.Byte</td>
</tr>
<tr>
<td>sbyte</td>
<td>y</td>
<td>System.SByte</td>
</tr>
<tr>
<td>int16</td>
<td>s</td>
<td>System.Int16</td>
</tr>
<tr>
<td>uint16</td>
<td>us</td>
<td>System.UInt16</td>
</tr>
<tr>
<td>int, int32</td>
<td></td>
<td>System.Int32</td>
</tr>
<tr>
<td>uint, uint32</td>
<td>u</td>
<td>System.UInt32</td>
</tr>
<tr>
<td>int64</td>
<td>L</td>
<td>System.Int64</td>
</tr>
<tr>
<td>uint64</td>
<td>UL</td>
<td>System.UInt64</td>
</tr>
<tr>
<td>float</td>
<td></td>
<td>System.Double</td>
</tr>
<tr>
<td>float32</td>
<td>f</td>
<td>System.Float</td>
</tr>
<tr>
<td>decimal</td>
<td>M</td>
<td>System.Decimal</td>
</tr>
</table>
<p>サフィックスは数値の直後に付ける文字。<br />
整数値のデフォルトは int 、小数値のデフォルトは float。</p>
<p>F#の数値リテラルはデフォルトでは10進表記だが、<br />
プレフィックスによって2進、8進、16進として扱える。</p>
<table style="width:300px;">
<thead>
<td>進数</td>
<td>プレフィックス</td>
</thead>
<tr>
<td>10進</td>
<td></td>
</tr>
<tr>
<td>2進</td>
<td>0b</td>
</tr>
<tr>
<td>8進</td>
<td>0o</td>
</tr>
<tr>
<td>16進</td>
<td>0x</td>
</tr>
</table>
<hr />
<h3><a id="big">多倍長整数</a></h3>
<p>その名の通り、64ビットを超える巨大な整数も扱えるようになる。</p>
<table style="width:400px;">
<thead>
<td>F#型名</td>
<td>サフィックス</td>
<td>.NET型</td>
</thead>
<tr>
<td>bigint</td>
<td>I</td>
<td>System.Numerics.BigInteger</td>
</tr>
</table>
<hr />
<h3><a id="char">文字</a></h3>
<p>文字型は<i>char</i>で内部的にはUTF-16の値を保持している。<br />
つまり2バイト。</p>
<p>文字リテラルは &#8216;a&#8217; のようにアポストロフィーで囲む。</p>
<p>一部の文字はエスケープシーケンスで表す。</p>
<table  style="width:300px;">
<thead>
<td>文字</td>
<td>文字の意味</td>
</thead>
<tr>
<td>\&#8217;</td>
<td>アポストロフィ</td>
</tr>
<tr>
<td>\&#8221;</td>
<td>ダブルクオーツ</td>
</tr>
<tr>
<td>\\</td>
<td>バックスラッシュ</td>
</tr>
<tr>
<td>\b</td>
<td>バックスペース</td>
</tr>
<tr>
<td>\n</td>
<td>LF</td>
</tr>
<tr>
<td>\r</td>
<td>CR</td>
</tr>
<tr>
<td>\t</td>
<td>水平タブ</td>
</tr>
</table>
<hr />
<h3><a id="str">文字列</a></h3>
<p>型名は string で、リテラルは &#8220;abc&#8221; のようにダブルクオーツで囲む。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> s1 <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;any string&quot;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> s1 <span style="color: #a52a2a;">:</span> string <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;any string&quot;</span><span style="color: #3cb371;">&quot;</span></div></div>
<p>コード上で改行を含んでも構わない。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> s2 <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;line1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line2<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line3&quot;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> s2 <span style="color: #a52a2a;">:</span> string <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;line1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line2<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; line3&quot;</span></div></div>
<p>コード上でのみ改行する場合。<br />
行末にバックスラッシュで、改行と続く空白文字が無視される。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> s3 <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;line1-\<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue-\<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; last&quot;</span><span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> s3 <span style="color: #a52a2a;">:</span> string <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;line1-continue-last&quot;</span></div></div>
<p>文字列リテラルに <i>B</i> サフィックスを追加することで <i>byte</i> 配列に変換される。<br />
<i>byte</i> に格納できない文字が含まれているとエラーになるので注意。</p>
<div class="codecolorer-container ocaml twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:550px;"><div class="ocaml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #a52a2a;">&gt;</span> <span style="color: #06c; font-weight: bold;">let</span> str <span style="color: #a52a2a;">=</span> <span style="color: #3cb371;">&quot;test&quot;</span>B<span style="color: #a52a2a;">;;</span><br />
<br />
<span style="color: #06c; font-weight: bold;">val</span> str <span style="color: #a52a2a;">:</span> byte <span style="color: #6c6;">&#91;</span><span style="color: #6c6;">&#93;</span> <span style="color: #a52a2a;">=</span> <span style="color: #6c6;">&#91;</span><span style="color: #a52a2a;">|</span>116uy<span style="color: #a52a2a;">;</span> 101uy<span style="color: #a52a2a;">;</span> 115uy<span style="color: #a52a2a;">;</span> 116uy<span style="color: #a52a2a;">|</span><span style="color: #6c6;">&#93;</span></div></div>
<hr />
<h3><a id="bool">ブール値</a></h3>
<p>型名は <i>bool</i> で、.NET型名は <i>System.Boolean</i>。<br />
<i>true</i> （真）か <i>false</i> （偽）のどちらかを持つ。</p>
]]></content:encoded>
			<wfw:commentRss>http://sikios.com/wordpress/20100220/f-%e3%83%a1%e3%83%a2-%e5%9f%ba%e6%9c%ac%e5%9e%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programming F#</title>
		<link>http://sikios.com/wordpress/20100219/programming-f/</link>
		<comments>http://sikios.com/wordpress/20100219/programming-f/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 10:35:35 +0000</pubDate>
		<dc:creator>rei</dc:creator>
				<category><![CDATA[F#]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://sikios.com/wordpress/?p=800</guid>
		<description><![CDATA[とにかくF#の日本語の書籍がないので、Programming F# を買いました。
英語なので読むのに多少時間はかかりますが、現時点ではこれが一番分かりやすいかと。
気が向いたらまとめてみようと思います。
]]></description>
			<content:encoded><![CDATA[<p>とにかくF#の日本語の書籍がないので、<a href="http://www.amazon.co.jp/Programming-F-Don-Syme/dp/0596153643/">Programming F#</a> を買いました。<br />
英語なので読むのに多少時間はかかりますが、現時点ではこれが一番分かりやすいかと。</p>
<p>気が向いたらまとめてみようと思います。</p>
]]></content:encoded>
			<wfw:commentRss>http://sikios.com/wordpress/20100219/programming-f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
