Shingo Omura avatar Shingo Omura committed e8045e3

translation work for commit df9fda2, 'A little more clarification on functions-as-functors, again by appeal to Haskell.'

Comments (0)

Files changed (1)

 	<h2>型クラスペディア(The Typeclassopedia)</h2>
 	<img src="images/typeclassopedia.png" style="float: right; width: 100%; margin-left: 20px;">
 	<p>この型クラス階層は関数型のコードにおいて大変有用であることが証明されています:
-	<ul class="slide">
+	<ul>
 		<li class="slide"><em>関数型デザインパターン</em></li>
 		<li class="slide">型クラスには不思議なトリックのようなものはほとんどありません</li>
 		<li class="slide">Scalaではscalaz (scala-zedと発音)というライブラリが提供してくれています</li>
 	</div>
 	<h6 class="slide">クイズ: すこし変わった方法でmapを定義しましたが、これが表現している単純な概念とは何でしょう?</h6>
 	<div class="slide">
+		<p>もう一度、Haskell版の<code>fmap</code>を見てみましょう:</p>
+<pre class="haskell">
+	fmap :: (a -> b) -> f a -> f b
+</pre>
+	</div>
+	<div class="slide">
+		<p>この <code>f a</code> を <code>r -> a</code> 置き換えてみてください。 </p>
+<pre class="haskell">
+	fmap :: (a -> b) -> (r -> a) -> (r -> b)
+</pre>
+	<p style="font-size:60%">*訳注:<code>FunctionFunctor[R]</code>は<code>R</code>を定義域とする関数を表していて、ここで定義された<code>map</code>は<code>R=>a</code>と<code>a=>b</code>から<code>R=>b</code>という関数を返す、つまり関数の合成の概念を表している。</p>
+	</div>
+	<div class="slide">
 	  <p>余談: ここが"ボックス"のアナロジーが壊れ始めるところです。そして、「計算のコンテキスト」という曖昧な言葉を使い始めることになるのです。</p>
 	  <p style="font-size:60%">*訳注:日本では"ボックス"ではなく"コンテナ"というアナロジーが使われることが多い。</p>
 	</div>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.