<?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:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xml:lang="ja">
<channel rdf:about="rss">
	<title>haskellの掲示板</title>
	<link>http://haskell.g.hatena.ne.jp/bbs</link>
	<description></description>
	<dc:creator></dc:creator>
	<items>
	<rdf:Seq>
		<rdf:li rdf:resource="http://haskell.g.hatena.ne.jp/bbs/3/1"/>
		<rdf:li rdf:resource="http://haskell.g.hatena.ne.jp/bbs/2/5"/>
		<rdf:li rdf:resource="http://haskell.g.hatena.ne.jp/bbs/2/4"/>
		<rdf:li rdf:resource="http://haskell.g.hatena.ne.jp/bbs/2/3"/>
		<rdf:li rdf:resource="http://haskell.g.hatena.ne.jp/bbs/2/2"/>
		<rdf:li rdf:resource="http://haskell.g.hatena.ne.jp/bbs/2/1"/>
		<rdf:li rdf:resource="http://haskell.g.hatena.ne.jp/bbs/1/1"/>
	</rdf:Seq>
	</items>
</channel>
<item rdf:about="http://haskell.g.hatena.ne.jp/bbs/3/1">
	<title>Real World Haskell 読書会やりません？</title>
	<link>http://haskell.g.hatena.ne.jp/bbs/3/1</link>
	<description>　そのうちO&amp;#39;Reillyから&amp;quot;Real World Haskell&amp;quot;が出版されます。2008/11 には書店入手可能だという噂です。（まぁ読むだけなら既に無料公開のPDFで読めるんですが） 　出版されたら読書会とかしませんか？私は東京近辺なら参加可能です。 　Exerciseとかも載っている本なので勉強会がしたいなぁ、と。   </description>

	<content:encoded><![CDATA[
		<div class="section">
			<p>　そのうちO'Reillyから"Real World <a href="http://haskell.g.hatena.ne.jp/keyword/Haskell" class="keyword">Haskell</a>"が出版されます。2008/11 には書店入手可能だという噂です。（まぁ読むだけなら既に無料公開のPDFで読めるんですが）</p>
			<p>　出版されたら読書会とかしませんか？私は東京近辺なら参加可能です。</p>
			<p>　Exerciseとかも載っている本なので勉強会がしたいなぁ、と。</p>
		</div>
]]></content:encoded>

	<dc:creator>tMiya</dc:creator>
	<dc:date>2008-09-26T10:47:02+09:00</dc:date>
</item>
<item rdf:about="http://haskell.g.hatena.ne.jp/bbs/2/5">
	<title>そんなものが</title>
	<link>http://haskell.g.hatena.ne.jp/bbs/2/5</link>
	<description>そんな物があるんですねえ。便利そうだ。  Data.Mapを使ったプログラムに適用してみようとしたら、hatのライブラリの中にないといわれたのですが、どうやって組み込めばいいのでしょうか？</description>

	<content:encoded><![CDATA[
		<div class="section">
			<p>そんな物があるんですねえ。便利そうだ。</p>
			<p>Data.Mapを使ったプログラムに<a href="http://haskell.g.hatena.ne.jp/keyword/%E9%81%A9%E7%94%A8" class="keyword">適用</a>してみようとしたら、hatのライブラリの中にないといわれたのですが、どうやって組み込めばいいのでしょうか？</p>
		</div>
]]></content:encoded>

	<dc:creator>mr_konn</dc:creator>
	<dc:date>2006-09-21T01:17:54+09:00</dc:date>
</item>
<item rdf:about="http://haskell.g.hatena.ne.jp/bbs/2/4">
	<title>Hat</title>
	<link>http://haskell.g.hatena.ne.jp/bbs/2/4</link>
	<description>Hat - the Haskell Tracer http://www.haskell.org/hat/ というのがあります。   Hat をインストールする 洗練された Linux distribution を使えば簡単ですが、そうでないひとは   ghc http://www.haskell.org/ghc/ をインストール  hmake http://www.cs.york.ac.uk/fp/hmake/ をインストール  hat をインストール  の手順で導入する必要があります。 hmake は ghc でないコンパイラもサポートしていますが、hat を使うなら ghc で十分だと思われます。  hat 2.04 の configure にはバグがあります。もしもインストールに失敗したら   lib/YOUR_PLATFORM/config の GHCSYM= の行を編集   余計な改行をとりのぞき、 GHCSYM=604 にする  src/hatlib/Makefile の CPPFLAGS を編集  該当行の ghcsym を cat している部分を 604 を代入することに変える ことで、成功するかもしれません。   Hat を使う   ソースを書く  トレースは main 実行時に作られるので、中身を見たい関数を main で評価する  実行ファイルを作る  hmake -hat progname  progname はファイル名から.hs をのぞいた名前を指定すること  プログラム progname ができあがるので実行  hat-observe progname  hat-observe の使い方は hat のページにマニュアルがあります。 ためしに square(3+4) の例をやってみると次のようになります。     -- Sample.hs   main = do print (show foo)             return ()      foo :: Int   foo = square (3+4)      square :: Int -&amp;gt; Int   square x = x * x     % hmake -hat Sample   % ./Sample   % hat-observe Sample   hat-observe 2.04    (:? for help, :q to quit)    hat-observe&amp;gt; square   square 7 = 49   hat-observe&amp;gt;     hat のページにパターンマッチの展開の具体例が載っています。 </description>

	<content:encoded><![CDATA[
		<div class="section">
			<p>Hat - the <a href="http://haskell.g.hatena.ne.jp/keyword/Haskell" class="keyword">Haskell</a> Tracer <a href="http://www.haskell.org/hat/" target="_blank">http://www.haskell.org/hat/</a></p>
			<p>というのがあります。</p>
			<h4> Hat をインストールする</h4>
			<p>洗練された <a class="okeyword" href="http://d.hatena.ne.jp/keyword/Linux">Linux</a> distribution を使えば簡単ですが、そうでないひとは</p>
			<ol>
				<li> ghc <a href="http://www.haskell.org/ghc/" target="_blank">http://www.haskell.org/ghc/</a> をインストール</li>
				<li> hmake <a href="http://www.cs.york.ac.uk/fp/hmake/" target="_blank">http://www.cs.york.ac.uk/fp/hmake/</a> をインストール</li>
				<li> hat をインストール</li>
			</ol>
			<p>の手順で導入する必要があります。</p>
			<p>hmake は ghc でないコンパイラもサポートしていますが、hat を使うなら</p>
			<p>ghc で十分だと思われます。</p>
			<p>hat 2.04 の configure にはバグがあります。もしもインストールに失敗したら</p>
			<ul>
				<li>  lib/YOUR_PLATFORM/config の GHCSYM= の行を編集
				<ul>
					<li>  余計な改行をとりのぞき、 GHCSYM=604 にする</li>
				</ul>
				</li>
				<li> src/hatlib/Makefile の CPPFLAGS を編集
				<ul>
					<li> 該当行の ghcsym を cat している部分を 604 を代入することに変える</li>
				</ul>
				</li>
			</ul>
			<p>ことで、成功するかもしれません。</p>
			<h4> Hat を使う</h4>
			<ol>
				<li> ソースを書く
				<ol>
					<li> トレースは main 実行時に作られるので、中身を見たい関数を main で<a href="http://haskell.g.hatena.ne.jp/keyword/%E8%A9%95%E4%BE%A1" class="keyword">評価</a>する</li>
				</ol>
				</li>
				<li> 実行ファイルを作る
				<ol>
					<li> hmake -hat progname</li>
					<li> progname はファイル名から.hs をのぞいた名前を指定すること</li>
					<li> プログラム progname ができあがるので実行</li>
				</ol>
				</li>
				<li> hat-observe progname</li>
			</ol>
			<p>hat-observe の使い方は hat のページにマニュアルがあります。</p>
			<p>ためしに square(3+4) の例をやってみると次のようになります。</p>
			<blockquote>
			<p>  -- Sample.hs</p>
			<p>  main = do print (show foo)</p>
			<p>            return ()</p>
			<p>  </p>
			<p>  foo :: Int</p>
			<p>  foo = square (3+4)</p>
			<p>  </p>
			<p>  square :: Int -&gt; Int</p>
			<p>  square x = x * x</p>
			</blockquote>
			<blockquote>
			<p>  % hmake -hat Sample</p>
			<p>  % ./Sample</p>
			<p>  % hat-observe Sample</p>
			<p>  hat-observe 2.04    (:? for help, :q to quit)</p>
			<p>  hat-observe&gt; square</p>
			<p>  square 7 = 49</p>
			<p>  hat-observe&gt;  </p>
			</blockquote>
			<p>hat のページに<a href="http://haskell.g.hatena.ne.jp/keyword/%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%83%9E%E3%83%83%E3%83%81" class="keyword">パターンマッチ</a>の展開の具体例が載っています。</p>
		</div>
]]></content:encoded>

	<dc:creator>dimageki</dc:creator>
	<dc:date>2006-08-07T01:09:00+09:00</dc:date>
</item>
<item rdf:about="http://haskell.g.hatena.ne.jp/bbs/2/3">
	<title>Debug.Trace</title>
	<link>http://haskell.g.hatena.ne.jp/bbs/2/3</link>
	<description>まず、ghc と Hugs の機能にはそのようなものはなかったと記憶しています。そして、ほかの Haskell 実装には(たしか)対話環境がそもそもありません。  ただ、 ghc/Hugs にはいちおう Debug.Trace モジュールというのがあり、 trace 関数というのが用意されてはいます。  trace :: String -&amp;gt; a -&amp;gt; a  ただし、これは printf デバッグみたいなものなので、 scheme の trace のようなものではありません。第一引数の文字列を表示してから、第二引数の値を返します。使い方はこんな感じ。    なぜこのようなことになっているかというと、 trace が一般に非常に難しい問題をはらんでいるからでしょう。 Haskell は遅延評価言語なのですが、表示をするためには何らかの値が必要となり、その結果として評価順序が本来の計算と変わる可能性もあるからです。 たとえば、たらいまわし関数を trace しようとすると、どうなるのでしょうか。どうなるべきでしょうか。 などなど、一筋縄では行かない問題があるためではないかと思っています。実際、 trace 関数も簡単そうに見えて、使ってみたら意外なところで値を評価してしまって頭を抱えた、みたいなことがありました。   ちなみに、実際に(概念上)どのように簡約されていくか、という過程については英語のHaskellの本ではそれなりに説明されていることがあります。</description>

	<content:encoded><![CDATA[
		<div class="section">
			<p>まず、<a class="okeyword" href="http://d.hatena.ne.jp/keyword/ghc">ghc</a> と <a href="http://haskell.g.hatena.ne.jp/keyword/Hugs" class="keyword">Hugs</a> の機能にはそのようなものはなかったと記憶しています。そして、ほかの <a href="http://haskell.g.hatena.ne.jp/keyword/Haskell" class="keyword">Haskell</a> 実装には(たしか)<a href="http://haskell.g.hatena.ne.jp/keyword/%E5%AF%BE%E8%A9%B1%E7%92%B0%E5%A2%83" class="keyword">対話環境</a>がそもそもありません。</p>
			<p>ただ、 <a class="okeyword" href="http://d.hatena.ne.jp/keyword/ghc">ghc</a>/<a href="http://haskell.g.hatena.ne.jp/keyword/Hugs" class="keyword">Hugs</a> にはいちおう Debug.Trace モジュールというのがあり、 trace 関数というのが用意されてはいます。</p>
<pre>
trace :: String -&gt; a -&gt; a
</pre>
			<p>ただし、これは printf デバッグみたいなものなので、 <a class="okeyword" href="http://d.hatena.ne.jp/keyword/scheme">scheme</a> の trace のようなものではありません。第一引数の文字列を表示してから、第二引数の値を返します。使い方はこんな感じ。</p>
<pre>
 fact_p 0 = trace &quot;=&gt; 1&quot; 1
 fact_p n = trace (&quot;&lt;= &quot; ++ show n) $ n * fact_p (n-1)
</pre>
			<br>

			<p>なぜこのようなことになっているかというと、 trace が一般に非常に難しい問題をはらんでいるからでしょう。 <a href="http://haskell.g.hatena.ne.jp/keyword/Haskell" class="keyword">Haskell</a> は<a href="http://haskell.g.hatena.ne.jp/keyword/%E9%81%85%E5%BB%B6%E8%A9%95%E4%BE%A1" class="keyword">遅延評価</a>言語なのですが、表示をするためには何らかの値が必要となり、その結果として<a href="http://haskell.g.hatena.ne.jp/keyword/%E8%A9%95%E4%BE%A1" class="keyword">評価</a>順序が本来の計算と変わる可能性もあるからです。</p>
			<p>たとえば、たらいまわし関数を trace しようとすると、どうなるのでしょうか。どうなるべきでしょうか。</p>
			<p>などなど、一筋縄では行かない問題があるためではないかと思っています。実際、 trace 関数も簡単そうに見えて、使ってみたら意外なところで値を<a href="http://haskell.g.hatena.ne.jp/keyword/%E8%A9%95%E4%BE%A1" class="keyword">評価</a>してしまって頭を抱えた、みたいなことがありました。</p>			<br>

			<p>ちなみに、実際に(概念上)どのように<a href="http://haskell.g.hatena.ne.jp/keyword/%E7%B0%A1%E7%B4%84" class="keyword">簡約</a>されていくか、という過程については英語の<a href="http://haskell.g.hatena.ne.jp/keyword/Haskell" class="keyword">Haskell</a>の本ではそれなりに説明されていることがあります。</p>
		</div>
]]></content:encoded>

	<dc:creator>jmk</dc:creator>
	<dc:date>2006-07-03T00:13:48+09:00</dc:date>
</item>
<item rdf:about="http://haskell.g.hatena.ne.jp/bbs/2/2">
	<title>schemeのtraceのようなものが欲しい</title>
	<link>http://haskell.g.hatena.ne.jp/bbs/2/2</link>
	<description>ちょっと趣旨は違うのかもしれませんが、私も「どのように評価されていくのか」がわかるようなツールがあれば欲しいと思っています。  たとえばschemeのtraceのようなもの  http://blog.livedoor.jp/dankogai/archives/50458135.html  は、Haskellには存在しないのでしょうか。  ご存知の方がいらっしゃいましたら、是非ともご教授ください。</description>

	<content:encoded><![CDATA[
		<div class="section">
			<p>ちょっと趣旨は違うのかもしれませんが、私も「どのように<a href="http://haskell.g.hatena.ne.jp/keyword/%E8%A9%95%E4%BE%A1" class="keyword">評価</a>されていくのか」がわかるようなツールがあれば欲しいと思っています。</p>
			<p>たとえば<a class="okeyword" href="http://d.hatena.ne.jp/keyword/scheme">scheme</a>のtraceのようなもの</p>
			<p><a href="http://blog.livedoor.jp/dankogai/archives/50458135.html" target="_blank">http://blog.livedoor.jp/dankogai/archives/50458135.html</a></p>
			<p>は、<a href="http://haskell.g.hatena.ne.jp/keyword/Haskell" class="keyword">Haskell</a>には存在しないのでしょうか。</p>
			<p>ご存知の方がいらっしゃいましたら、是非ともご教授ください。</p>
		</div>
]]></content:encoded>

	<dc:creator>muscovyduck</dc:creator>
	<dc:date>2006-07-02T23:08:05+09:00</dc:date>
</item>
<item rdf:about="http://haskell.g.hatena.ne.jp/bbs/2/1">
	<title>質問：評価する過程を簡単に見る方法ってあるのでしょうか？</title>
	<link>http://haskell.g.hatena.ne.jp/bbs/2/1</link>
	<description>　Haskellが遅延評価して値を計算する過程を、判りやすく表示してくれるツールなりライブラリとか、もしご存知の方があれば教えて頂けないでしょうか？ 　例えて言うと、square (3+4) -&amp;gt; (3+4)*(3+4) -&amp;gt; 7*7 -&amp;gt; 49 みたいな変形の過程が見えるようなツールがあればいいなぁ、ということなのですが。 </description>

	<content:encoded><![CDATA[
		<div class="section">
			<p>　<a href="http://haskell.g.hatena.ne.jp/keyword/Haskell" class="keyword">Haskell</a>が<a href="http://haskell.g.hatena.ne.jp/keyword/%E9%81%85%E5%BB%B6%E8%A9%95%E4%BE%A1" class="keyword">遅延評価</a>して値を計算する過程を、判りやすく表示してくれるツールなりライブラリとか、もしご存知の方があれば教えて頂けないでしょうか？</p>
			<p>　例えて言うと、square (3+4) -&gt; (3+4)*(3+4) -&gt; 7*7 -&gt; 49 みたいな変形の過程が見えるようなツールがあればいいなぁ、ということなのですが。</p>
		</div>
]]></content:encoded>

	<dc:creator>tMiya</dc:creator>
	<dc:date>2006-07-02T20:34:41+09:00</dc:date>
</item>
<item rdf:about="http://haskell.g.hatena.ne.jp/bbs/1/1">
	<title>雑談</title>
	<link>http://haskell.g.hatena.ne.jp/bbs/1/1</link>
	<description>haskellグループの掲示板を有効にしました。 Haskellに関する情報交換にお使いください。 </description>

	<content:encoded><![CDATA[
		<div class="section">
			<p>haskellグループの掲示板を有効にしました。</p>
			<p>Haskellに関する情報交換にお使いください。</p>
		</div>
]]></content:encoded>

	<dc:creator>hyuki</dc:creator>
	<dc:date>2006-06-03T06:57:44+09:00</dc:date>
</item>
</rdf:RDF>

