[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 06/18 14:14 / Filesize : 205 KB / Number-of Response : 798
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

関数型プログラミング言語Haskell Part18



1 名前:デフォルトの名無しさん [2012/03/16(金) 21:54:23.92 ]
haskell.org
ttp://www.haskell.org/

日本語サイト
ttp://www.sampou.org/cgi-bin/haskell.cgi
ttp://www.shido.info/hs/

過去ログ
関数型プログラミング言語Haskell
Part1 ttp://pc.2ch.net/tech/kako/996/996131288.html
Part2 ttp://pc2.2ch.net/test/read.cgi/tech/1013846140/
Part3 ttp://pc8.2ch.net/test/read.cgi/tech/1076418993/
Part4 ttp://pc8.2ch.net/test/read.cgi/tech/1140717775/
Part5 ttp://pc8.2ch.net/test/read.cgi/tech/1149263630/
Part6 ttp://pc11.2ch.net/test/read.cgi/tech/1162902266/
Part7 ttp://pc11.2ch.net/test/read.cgi/tech/1174211797/
Part8 ttp://pc11.2ch.net/test/read.cgi/tech/1193743693/
Part9 ttp://pc11.2ch.net/test/read.cgi/tech/1211010089/
Part10 ttp://pc12.2ch.net/test/read.cgi/tech/1231861873/
Part11 ttp://pc12.2ch.net/test/read.cgi/tech/1252382593/
Part12 ttp://hibari.2ch.net/test/read.cgi/tech/1272536128/
Part13 ttp://hibari.2ch.net/test/read.cgi/tech/1286706874/
Part14 ttp://hibari.2ch.net/test/read.cgi/tech/1299385928/
Part15 ttp://hibari.2ch.net/test/read.cgi/tech/1310199414/
Part16 ttp://toro.2ch.net/test/read.cgi/tech/1317958045/
Part17 ttp://toro.2ch.net/test/read.cgi/tech/1325510368/

116 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 09:34:37.44 ]
頭悪そうw

117 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 10:14:32.40 ]
ごめんなさい

隔離スレ  toro.2ch.net/test/read.cgi/tech/1333801607/
で暴れてた馬鹿がこっちに逃げて来たみたいです
FizzBuzzすら書けない口だけ野郎なんで無視してもらって結構です

118 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 11:13:37.90 ]
>>114
www.kmonos.net/wlog/65.html
> 15:49 06/09/08 DanoMoi と Haskell
>決して「実際にそういう実装/理論になっている」という話ではなく、
>「こういう風に考えとけばわかる気がする」みたいな話なのでよろしくお願いします。
> ・Haskell プログラムには、一切いかなる意味でも副作用は存在しない
> ・Haskell プログラムは、"DanoMoi" というプログラミング言語のプログラムを生成する。
>"DanoMoi" という名前および概念は今私が勝手に考えたので適当ですよ。

プログラムと処理系は同じ意味だと思っているのですか?

119 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 13:41:43.29 ]
スパコンの世界じゃ、OSとハードウェアは同じ意味だしな…

120 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 13:43:34.33 ]
>スパコンの世界じゃ、OSとハードウェアは同じ意味だしな…
ないない。

121 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 14:04:53.77 ]
>>120
新しく世界一のスパコンを作った = ハードウェアとそれ専用のOSを作った(むしろハードウェアはそのままでOSだけを改良した)

122 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 14:15:40.44 ]
SISCマシンの設計図はハードウェアの設計図だろうか? ソフトウェアの設計図だろうか?

123 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 15:59:38.46 ]
>>119
アホ丸出しで恥ずかしくないの?

124 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 16:04:00.61 ]
>>123
大学でスパコンの講義受けるとOSとハードは同じだと教わるよ



125 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 16:13:02.27 ]
システムソフトウェアとハードウェアを一緒に開発しているだけの話で「同じ」ではない。

126 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 16:24:20.62 ]
>>125
スパコンは、ファイル管理システムとハードウェアとは不可分
逆に言うと、OSだけを取り出せと言われたら、LSIをペンチでいくつか取り出すことになる

DOS/V機やUNIXを使っていると分かりずらいが、UNIXで言うと、常駐ソフトとカーネルの一部がハードウェアそのものになってる

127 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 17:03:17.98 ]
何というデマ…

128 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 17:08:26.97 ]
通常ならOSで実現されている機能の一部がハードウェア上で実装されているとしても、
それを「OSとハードウェアは同じ意味」とか言っちゃうのは痛い。
さらにスパコンと呼ばれるものがすべからくそういう構成をとってると思い込んでるのも痛い。

129 名前: ◆0uxK91AxII mailto:sage [2012/04/15(日) 18:19:56.27 ]
>>126
誰が教えたの?

130 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:33:14.08 ]
> UNIXで言うと、常駐ソフト

デーモンという言葉すら知らない幼稚園児レベルのド素人は、まずは幼稚園に行けば?

131 名前:デフォルトの名無しさん [2012/04/15(日) 18:36:50.24 ]
だえもんさんなめてんの?

132 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:38:20.84 ]
>>126
ノードやバスのファームウェアも含めてアップデートするんで、ソフトウェアだけで配布されてますが?
使ったことないんじゃないの?

133 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 18:43:44.98 ]
スレチなやつは全員立ち去れ

134 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 19:25:43.97 ]
>>126, >>128
内容云々より、分かりずらいだのすべからくだの
日本語が気になってしょうがない



135 名前:デフォルトの名無しさん mailto:sage [2012/04/15(日) 20:38:41.03 ]
ああ、日曜日だ・・・

136 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 07:13:57.36 ]
月曜日です。
関数型言語使いには無職が多いと聞きます。
皆が働いている時間に勉強や議論ができます。良かったですね!
今日も有意義に過ごしましょう!

137 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 07:23:29.97 ]
働いてるから、という不勉強の言い訳は、頭のおかしい企業以外では通らないよw

138 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 07:23:33.83 ]
みんな賢いからyoung retireして、余生を関数型言語のプログラミングで楽しんでるんだよ。知らなかった?

139 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 07:53:15.45 ]
>>136
今日も一日ドカタ仕事頑張ってね!

140 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 07:54:30.89 ]
匿名掲示板で職業なんてどうでもいいので少しはHaskellの話でもしませんか

141 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 09:22:55.36 ]
Haskellの話なんざHaskell Cafeだの#Haskell等で好きなだけしてろ

142 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 10:07:06.63 ]
ボクの分からないむずかしい話しちゃだめー

143 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 21:46:45.82 ]
>>128
実は正確にいうとスパコンに限らず、そこら辺のAT互換機もハードウェアとOSは同一
(スパコンはハードウェアとOSをセットで開発しないと、ハードウェアを作ったとは言わない)
特にHaskellを扱うようなソフトウェア科学から言えば同一と言わなければならない
理由はハードウェアを抽象化したモノがOSだから

ゲート回路だけでOS全部を構築しててもC言語でOS全部を書いていても、プログラムからは一切区別できない
区別できないってことは同じということ

144 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:36:02.49 ]
意味わかんない。日本語でおk、レベル。

たとえばforkシステムコールをどうやって論理回路で実装するのか、論文が一本でもあったら示してくれ。



145 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:42:55.75 ]
>>144
相手にしちゃダメ

146 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:46:57.64 ]
>>144
論理回路でチューリングマシンを実装すればいいじゃん

147 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 22:52:33.55 ]
forkってメモリコピーするだけじゃん

148 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:00:17.85 ]
>>144 >>146
USBメモリと同等のモノはFFとNANDゲートだけで構成できる
USBメモリの中にOSを入れることができる
つまり論理回路しかなくてもOSは構成できる

149 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:06:10.28 ]
紙と鉛筆でも構成できそうだな

150 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:12:15.14 ]
>>148
OS → Haskellの言語処理系

USBメモリと同等のモノはFFとNANDゲートだけで構成できる
USBメモリの中にHaskllの言語処理系を入れることができる
つまり論理回路しかなくてもHaskllは構成できる

>>150 相手しちゃダメっ

151 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:13:33.35 ]
なんやその矢印は
シミュレーション関係とかΣ代数ホモモルフィズムとかちゃんと意味かけやぼけー

152 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:18:00.73 ]
ニヤニヤ☆
その程度の頭で数学やってるんだw

153 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:27:59.61 ]
>>149
設計に従って手で鉛筆と紙を動かせば問題ない

>>150
Haskellを経由しないシステムコールを禁止すれば、HaskellプログラムかHaskellより高水準のプログラミング言語から見ればそのHaskell処理系がOSでありハードウェアということになる
つまりHaskellマシン

154 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:28:52.93 ]
>>148 アホか。どんなソフトウェアだろうがメモリに存在できるんだからハードウェアになっちまうだろうが。
スーパーコンピュータに限らず、あらゆるコンピュータのあらゆるソフトウェアが。

スーパコンピュータのOSが特別、というのがお前の主張だったよな。

> DOS/V機やUNIXを使っていると分かりずらいが
とお前は言っている。それをちゃんと説明しろ。できなければ回線切って吊るか消えろ。



155 名前:デフォルトの名無しさん mailto:sage [2012/04/16(月) 23:33:31.56 ]
おれはスレチ全員が回線切って吊るか消えてほしい

156 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:13:15.53 ]
>>154
DOS/V機やUNIXはOSのうちソフトウェアの可換性の高い部分が多く、ユーザがさわって移植している部分こそがOSだと勘違いしているから、DOS/V機やUNIXを使っていると「OSがハードウェアと同一だと」分かりずらい

新しいスパコンを開発するときには、OSに他のハードとの可換性がないため、OSとハードウェアは完全に同一
「新しいスパコンを開発した」とは「新しいOSを開発した」と同意語で、この認識は世間一般でも認められている
筐体の中のLSIに一切変更を加えなくても、OSの改良で「新しいスパコンを開発した」とニュースになる

ソフトウェアは抽象度によってハードウェアから独立するので、あらゆるコンピュータのあらゆるソフトウェアをハードウェアとは呼ぶのは正しくない
プログラムの電子データのビット列とそれを格納してる機構はハードウェアだが、プログラムのセマンティクスはハードウェアではない
ただひとつ例外があって、OSというプログラムはそのセマンティクスがハードウェア

157 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:26:59.45 ]
>>156
スパコンのOSはLinixやAIX(IBMのUNIX),IRIX(SGIのUNIX)等、UNIX系OSである。
Linix、AIX、UNIXはソフトウエアである。
したがって、スパコンのOSはソフトウェアである。

この問題についての詳しい議論は、こちらのスレ↓が適している。
toro.2ch.net/test/read.cgi/tech/1331930031/

158 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:39:40.50 ]
>>157
スペルミス。LinixはLinuxの誤記。ちなみに京にはLinuxが移植された。

159 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:42:45.46 ]
>>157
スパコンのOSはLinixやAIX(IBMのUNIX),IRIX(SGIのUNIX)等、UNIX系OSである。
スパコンのOSはハードウェアである。
したがって、スパコン以外のUNIX系OSもハードウェアである。

160 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:47:24.63 ]
>>158
京はノードに少し改良したLinuxを入れてて、京そのもののOSは移植じゃなくて改良

161 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 22:55:14.12 ]
>>159
> スパコンのOSはLinixやAIX(IBMのUNIX),IRIX(SGIのUNIX)等、UNIX系OSである。
↓この間に飛躍がある。
>スパコンのOSはハードウェアである。←根拠を省いた断定。

162 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 23:08:22.98 ]
>>161
別の言い方をしましょう
「例えば、HaskellでプログラミングしてるときのOSって何?」
「Haskellでプログラミングしてるとハイパーキューブとかのハードウェア構造が消えるけど、ハードウェアは何に吸収されたの?」

163 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 23:14:00.03 ]
>>119が元凶か。IDないと面倒だね

164 名前:デフォルトの名無しさん mailto:sage [2012/04/18(水) 23:15:54.30 ]
>>162
それこそ初心者スレへどうぞだよ(OS,UNIX板あたりも含めて)。
もう少しコンピュータのいろはを勉強するか、あるいは無知の知に気がついた方がよい。
ヒント
・言語処理系から見たOSはライブラリの下でsystem callとして呼び出され機能している。
・OSは(というか通信ミドル)はトポロジーを特に隠さない。
 むしろトポロジーを意識して並列分散したほうが性能がでる。
 Haskellがトポロジーを露わに扱う術を持っていないだけである。



165 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 00:45:36.21 ]
ヒント、とか言って得意げに語りだす奴w

166 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 00:50:20.71 ]
何の根拠もないのに
「スパコンのOSはハードウェアである。」
とかトンデモな断言をするより遙かにましだろ。

「UNIX系OSもハードウェアである。」
に至っては、初心者スレではなく、もはや病院行けとしか言いようがない。
恥ずかしすぎるので人前では決して言わないように。

167 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 01:33:45.40 ]
っ鏡

168 名前: ◆QZaw55cn4c mailto:sage [2012/04/19(木) 02:29:21.51 ]
ふつうのhaskellを読んでいます。
ghc 7.2.1 以降は
import System
とすると、

could nod find module 'System'
It is a member o the hidden package 'haskell98-2.0.0.0'
use -v to see a list of the files searched for.

とでてコンパイルできません
ghc 7.0.4 ではコンパイルできます。
7.2.1 以降でコンパイルできるようにするにはどうしたらいいでしょうか?
環境はWindows7 です。
ideone.com/ToAyj

169 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 02:46:32.16 ]
import System.Environment
にすればおk

170 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 20:50:07.23 ]
>>164
System call がハードウェアとの接触点ということでしょう
ということは、rawSystem から向こうは全部ハードウェアです

仮に、Haskellプログラムがプログラム上の言明でトポロジーにアクセスできてどのノードのどのLSIのどのメモリのどのビットを1にするか指定していたら、そのプログラムはOSです

171 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 21:04:49.64 ]
>>166
・コンピュータ科学では、「どのコンピュータの」OSもハードウェアと「原理的に」同一
・一般のコンピュータ科学を知らない人たちは、スパコン業界のハードウェアとOSを同一視している

分からなければ、次の話を考えればいい

今パソコンの中に10cmくらいの512MBのメモリが入っている
この世から、プログラムを高水準のモノから次々の削除していく
一度削除したら、そのプログラムと同じことができるモノは永遠にこの世に出てこない

これを続けていくと、OSが削除されたときに512MBのメモリはハードウェアではなくなり、ただの石になる

もっと言うと、川べりに落ちてるただの石も、その石を動かすシステムがあって、Haskellプログラムからそのシステムにアクセスできて計算に利用できれば、そのシステムはOSであり、そのOSと石はハードウェアになる

172 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 21:22:33.36 ]
喩えの方が余計わかりにくい

173 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 21:59:04.77 ]
独自用語とたとえで持論を語り出す電波さん。
持ちネタはそんなにないから、しばらくすれば満足して黙る

174 名前:デフォルトの名無しさん mailto:sage [2012/04/19(木) 22:06:58.32 ]
もっとわかりやすく言うと、例えば論文読んでてプログラムからハードウェアへの入力x(t)があったとき、これそのままOSへの入力
例外はOSの論文読んでるときだけ



175 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 00:43:47.39 ]
>>171
この世にこれほど頭の悪い人を見たことがない。

176 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 02:42:48.57 ]
>>171
すれ違い迷惑です。退場してください

177 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 13:03:38.27 ]
Haskellの話しようぜ。そういえば来月 Learn You Haskell ... の日本語訳出るんだよね。

178 名前:デフォルトの名無しさん mailto:sage [2012/04/20(金) 16:23:19.18 ]
せっかくだから
www.haskell.org/haskellwiki/GHC/Data_Parallel_Haskell
どうよ?

179 名前:デフォルトの名無しさん mailto:sage [2012/04/21(土) 22:14:24.35 ]
parallel と concurrent がごっちゃになってる気がしないでもない

180 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 07:57:37.73 ]
ふむ
ttp://www.haskell.org/ghc/docs/latest/html/users_guide/lang-parallel.html

181 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 08:05:10.57 ]
並列と並行の定義は微妙に意見分かれるよね

182 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 11:52:22.81 ]
>>178は最初から最後までparallelの話じゃね?

183 名前:デフォルトの名無しさん mailto:sage [2012/04/22(日) 11:55:45.93 ]
data parallelだから当然だな。

184 名前:デフォルトの名無しさん mailto:sage [2012/04/24(火) 23:23:42.89 ]
Yampa でのゲーム作りは論文を参考にしてだいたい分りました
(論文のインベーダーを改造したり、ブロック崩しを作ったりしました)

一方、同じく FRP ライブラリの Reactive の方では、
どのようにゲームを作るのか

具体的には、個々のキャラを毎フレーム独立に動かしながら、
かつ互いに(衝突などで)関連を持つようにするには、
どのようなフレームワークを考えれば良いのか
生成や消滅はどのように考えるのか

参考になりそうな文献や記事は無いでしょうか

自分では、イベントとシンクの考え方がユニークで面白いので、
これをゲームオブジェクト間の関連に使えないかと考えているのですが、
他の人はどのように考えているのか、参考にしたいです



185 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 01:23:27.55 ]
Reactiveはもうメンテされてなくて、今のGHCじゃコンパイルできないから俺はノータッチだけど、
Yampaは、Reactiveなんかの古典FRPを写像変換子のアローとして再構築したライブラリだから、基本的なところの考え方に違いはないはず。

というか、生成、消滅、衝突とかをどう考えたらいいかわからないってのは、FRPの基本的な考えを理解してないからじゃないか?

時間に応じて離散的に変化する値を[(Time, a)]という無限リストだと捉えるのがイベント
時間に応じて連続的に変化する値をTime -> aという型の連続関数だと捉えるのがビヘイビア

こいつらに対して、
定刻tを過ぎたらイベントを発する atTime :: Time -> Event a
ビヘイビアを積分する integral :: Behavior a -> Behavior a
イベントが発生したタイミングで、ビヘイビアの値を補足した新しいイベント作る snapshot :: Behavior a -> Event b -> Event (a, b)

みたいなコンビネータを使ってごにょごにょするのがFRP。

例えば、キャラの移動速度の変化をビヘイビアとして定義して、integralで積分すれば、それが各時刻におけるキャラの位置のビヘイビアになる。
衝突、生成、消滅、キャラのステータス状態の変化、キー入力なんかは、イベントとして考えられるし、
毎フレームの更新自体もイベントとして考えられて、各キャラの更新は

map (flip snapshot updateEvent) charactor

みたいに書けば、それが各フレームのキャラの状態変化を表すイベントになる。
こんな感じで、イベントとビヘイビアを組み合わせて、より複雑なイベントやビヘイビアを作ってく。

とりあえず、Haskell wikiからたどれるリンクを片っ端から読みあさるのが良いと思う。
www.haskell.org/haskellwiki/Functional_Reactive_Programming
www.haskell.org/haskellwiki/Reactive

本だとSOEが有名。
・The Haskell School of Expression: Learning Functional Programming Through Multimedia
 ttp://www.amazon.co.jp/exec/obidos/ASIN/0521644089/

186 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 02:00:46.52 ]
ちなみに、Yampaはイベントも矩形波みたいな時刻tの関数だと捉えて、
全てTime -> aという連続関数として考えるのが基本的なアイディア。
イベントやビヘイビアの合成は、

SF a b = (Time -> a) -> (Time -> b)

という写像変換として定義して、その枠組みにアローを使ったと。

古典FRPの概要と欠点とか、AFRPが何を改善したのかとかは
www.haskell.org/haskellwiki/Yampa
から辿れる、ITU-FRP2010 のスライドで説明されてるから見とくと良いと思う。

187 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 04:37:14.33 ]
Haskell的な処理の仕方がどうにも見につかない
実際に使われてるコード読みまくるか

188 名前:デフォルトの名無しさん mailto:sage [2012/04/25(水) 19:19:28.33 ]
>>185
Yampa でゲームを作る場合、
pSwitch 系の関数を中心にイベント周りを組み立てるのが一般的ですよね
(論文 The Yampa Arcade や、これを引用してる他の論文などでも基本的にそうなってます)

まず、現在発生しているゲームオブジェクトを全てまとめたコレクションを作っておく

その上で、たとえば pSwitch 関数や dpSwitch 関数を使うのでしたら、
各ゲームオブジェクトや外部入力を起源とするイベント(衝突やビーム発射)を
発生させる関数を第1引数に渡す

コレクションの初期値を第2引数に渡す

第1引数の関数で発生したイベントを、コレクション内のゲームオブジェクトを
生成したり消滅させるイベントに変換する関数を第3引数に渡す

第3引数の関数で発生したイベントを解釈して
実際にコレクションを修正する関数を第4引数に渡す

細かいことはとりあえず抜きにして、大まかにはこんな感じだと思います
こうやって作った pSwith 関数や dpSwitch 関数の戻り値であるシグナル関数に、
ゲームを回すのに必要なシグナルを毎フレーム送るようにする

非常に分りやすく、イベントの伝達がスッキリして、
Yampa はかなり良い基盤を提供してくれると思っているのですが、
こういった基盤は Reactive の方ではどのようになっているのか聞きたいです

Reactive では Yampa みたいなイベント周りの仕組みを一ヶ所に集中させるのとは
また違った方法をとっているのでしょうか


189 名前:184 mailto:sage [2012/04/25(水) 19:22:23.08 ]
>>188
すいません、>>185 が Reactive についてはノータッチなのは分ってますが、
とりあえずどこかへアンカーを付けないと、後から話の流れが追いにくいと思いまして

190 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 11:55:44.48 ]
まだインクリメンタルGC実装されてないのかよ

191 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 12:00:24.86 ]
2000年以前に提案があったのにいまだに出来ないというのは実質無理ということなのだろうな
Non-stop Haskell(笑)

192 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 12:01:31.38 ]
Real Time Haskell

193 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 12:15:26.39 ]
メモ化による効率化の方法がわからない。。。
λカ娘(二期)を読んだらメモ化には Control.Monad.Memo (cabal install monad-memo)を使うといいよ的な
事が書いてあったのでHackageあたりの文書をチラ見してるけどフィボナッチ数列のメモ化だけの例じゃ
理解できない。。。

Hackageの文書みると「モナディックフォームに変換」とかさらりと書いてるので、もしかしてこれを使える
ようになるためにはモナドがちゃんとわかってないといけないんでしょうかね。

Control.Monad.Memoが使える程度のモナド理解のためのオススメ文書などあったらどなたか教えて
頂けないでしょうか。

194 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 17:31:00.49 ]
データをグラフにするのにニュープロットとカイロ
どっちのバインディングライブラリが幸せになれるかな
ドザです



195 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 18:02:32.57 ]
>>193
fib n = fib (n-1) + fib (n-2)

のところを

fib n = let
 n1 = fib (n -1)
 n2 = fib (n - 2)
 in (n1 + n2)

と書いて、モナド形式に変換した〜と言ってる2番目の例と比較してみればわかるんじゃないかな。
do が let、<-が=、returnが(大体)inに対応していると思って。
(これは他のどのモナドでも同じ。do文はモナドによって特殊な振る舞いを組み込む事の出来るlet式。
MonadFixのインスタンスにしてDoRec言語拡張でrecキーワードを有効にしないと再帰束縛はできんけど。)

関数を呼び出す際に、1引数関数(k -> Memo k v)と、値kを取る、memoって関数を介して呼び出すと、kに対する計算結果をメモ化してくれる。
これは、適用演算子($) :: (k -> v) -> k -> vにメモ化機能付けたもの、と考えてもおkだと思う。

異なる関数で相互再帰したりする場合はそれぞれ違うメモモナドを使わないとダメっぽいので、モナド変換子を理解してないとちょっとむずいかも。

196 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 19:22:43.33 ]
>>190
いまどれぐらいストップザワールドするんだろう?

197 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 21:15:42.26 ]
>>177
これ、Amazonに登録されてました

198 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 21:28:53.03 ]
評判の良い本だから楽しみだな
欲を言えば連休中に読みたかった

199 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 22:33:02.95 ]
>>197
そういう時はURLもお願いします。
ところで同時チェック商品が「情報処理2012年05月号別刷」です。
Haskellユーザは情報科学に興味がある人が多いのですね。

すごいHaskellたのしく学ぼう! (2012/5/23発売)
www.amazon.co.jp/dp/4274068854

情報処理2012年05月号別刷
「《特集》CGMの現在と未来: 初音ミク,ニコニコ動画,ピアプロの切り拓いた世界」
www.amazon.co.jp/dp/4915256839

え?初音ミクとニコニコ動画特集?
プレミアム会員の私が言うのも何ですが、
Haskellとはユーザ層が被らないとばかり思ってました。

200 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 23:02:51.55 ]
これがステマというやつか

201 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 23:13:54.70 ]
まったく。なにがURLもお願いしますだよw

202 名前:デフォルトの名無しさん mailto:sage [2012/04/27(金) 23:19:57.80 ]
>>200
ステルスに失礼だろ

203 名前:199 mailto:sage [2012/04/27(金) 23:44:34.50 ]
URLも日本語版のタイトルも書いてないから探すのに無駄に手間取りました。
>>199をステマと思った人は自分の判断力がその程度だと自覚してください。

204 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 00:26:50.05 ]
Learn You Haskellでググったら一発、
ていうかこのスレにいるような層で原著知らないやついるんだなあ
自分のアンテナが低レベルだと自覚してください



205 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 01:15:00.48 ]
前スレ736に日本語版タイトルが出ているのを思い出せなかった>>199はアンテナが低レベル。
日本語版を探している人が原著を知らないと判断した>>204は判断力が低レベル。

ということで、以後何もなかったかのようにどうぞ。

206 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 01:15:22.02 ]
>>203
>>203
>>203

207 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 01:54:56.47 ]
>>205
いやだからさ、「Learn You Haskell 翻訳」 とかでググったら
日本語版のタイトル出てくるよってことなんだが…
そこまで言わんと分からんかね

208 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 02:09:15.28 ]
原著知ってれば尼で適当に検索すれば表紙ですぐ分かる

209 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 02:15:34.87 ]
ttp://learnyouahaskell.com/chapters
ApplicativeとかMonoidの話もあるのか、買いだな

210 名前:デフォルトの名無しさん mailto:197 [2012/04/28(土) 06:33:10.05 ]
あー、なんかごめん

211 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 07:34:34.99 ]
いいってことよ

212 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 20:07:01.35 ]
GADT

これって、なんて発音するの?
カフェテラスで議論する時に困る

213 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 20:12:31.04 ]
じーえいでぃーてぃー 以外の発音は聞いたことがない

214 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 20:29:16.32 ]
そっか

HTML がハトマルだから、GADT も何かあるのかと思ってた

ありがと



215 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 21:12:57.68 ]
>HTML がハトマルだから
いやいや

216 名前:デフォルトの名無しさん mailto:sage [2012/04/28(土) 21:41:36.82 ]
ハテマラだろwwwwwwwwwwww






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<205KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef