<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>﻿﻿﻿IRC Liteのコードを丁寧に読む へのコメント</title>
	<atom:link href="http://wp.serpere.info/archives/149/feed" rel="self" type="application/rss+xml" />
	<link>http://wp.serpere.info/archives/149</link>
	<description>樹上で暮らすヘビのように生きたい</description>
	<lastBuildDate>Sun, 29 Jan 2012 15:44:12 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>14章SHOUTcastサーバのリファクタリング &#171; へびにっき より</title>
		<link>http://wp.serpere.info/archives/149/comment-page-1#comment-20</link>
		<dc:creator>14章SHOUTcastサーバのリファクタリング &#171; へびにっき</dc:creator>
		<pubDate>Fri, 06 Mar 2009 12:40:27 +0000</pubDate>
		<guid isPermaLink="false">http://wp.serpere.info/?p=149#comment-20</guid>
		<description>[...] そこでふと、以前に「様々なプログラミングパラダイムを全てプロセスとメッセージ送信に還元していくのがErlang流だ」と考えたことを思い出した。そうだ、これもプロセス＋無限ループで書いてしまおう！ filerange_server&#040;File, Min, Max&#041; -&gt; &#123;ok, Io&#125; = file:open&#040;File, &#091;read, binary, raw&#093;&#041;, filerange_loop&#040;Io, Min, Max&#041;. &#160; filerange_loop&#040;Io, Min, Max&#041; -&gt; receive &#123;From, &#123;pread, Offset, Size&#125;&#125; -&gt; Start = Min + Offset, End = Start + Size, if End &gt; Max -&gt; case file:pread&#040;Io, Start, Max - Start&#041; of &#123;ok, Data&#125; -&gt; From ! &#123;self&#040;&#041;, &#123;less, Data&#125;&#125;; eof -&gt; From ! &#123;self&#040;&#041;, &#123;less, &lt;&lt;&gt;&gt;&#125;&#125; end; true -&gt; &#123;ok, Data&#125; = file:pread&#040;Io, Start, Size&#041;, From ! &#123;self&#040;&#041;, &#123;exact, Data&#125;&#125; end, filerange_loop&#040;Io, Min, Max&#041;; &#123;From, close&#125; -&gt; From ! &#123;self&#040;&#041;, file:close&#040;Io&#041;&#125; end. [...]</description>
		<content:encoded><![CDATA[<p>[...] そこでふと、以前に「様々なプログラミングパラダイムを全てプロセスとメッセージ送信に還元していくのがErlang流だ」と考えたことを思い出した。そうだ、これもプロセス＋無限ループで書いてしまおう！ filerange_server&#40;File, Min, Max&#41; -&gt; &#123;ok, Io&#125; = file:open&#40;File, &#91;read, binary, raw&#93;&#41;, filerange_loop&#40;Io, Min, Max&#41;. &nbsp; filerange_loop&#40;Io, Min, Max&#41; -&gt; receive &#123;From, &#123;pread, Offset, Size&#125;&#125; -&gt; Start = Min + Offset, End = Start + Size, if End &gt; Max -&gt; case file:pread&#40;Io, Start, Max &#8211; Start&#41; of &#123;ok, Data&#125; -&gt; From ! &#123;self&#40;&#41;, &#123;less, Data&#125;&#125;; eof -&gt; From ! &#123;self&#40;&#41;, &#123;less, &lt;&lt;&gt;&gt;&#125;&#125; end; true -&gt; &#123;ok, Data&#125; = file:pread&#40;Io, Start, Size&#41;, From ! &#123;self&#40;&#41;, &#123;exact, Data&#125;&#125; end, filerange_loop&#40;Io, Min, Max&#41;; &#123;From, close&#125; -&gt; From ! &#123;self&#40;&#41;, file:close&#40;Io&#41;&#125; end. [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

