[過去ログ]
関数型プログラミング言語Haskell Part16 (978レス)
関数型プログラミング言語Haskell Part16 http://echo.5ch.net/test/read.cgi/tech/1317958045/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
194: デフォルトの名無しさん [sage] 2011/10/21(金) 00:14:42.74 for文などでかけと言われたらかけるけど、関数型の記述に比べれば 泥臭くって、抽象化ができないよね。関数オブジェクトなどを使って 抽象化させて作るんだったら、初級っぽくないだろうし。 http://echo.5ch.net/test/read.cgi/tech/1317958045/194
195: デフォルトの名無しさん [sage] 2011/10/21(金) 07:52:37.50 mplusを使ってfizzbuzzを書こうとすると現行のMonadPlusの駄目な部分がわかるかも http://echo.5ch.net/test/read.cgi/tech/1317958045/195
196: 186 [sage] 2011/10/21(金) 08:04:56.77 >>190 >>>186 >Richard Bird先生の本を読むのがいいかもしれない。 情報有難う! Research paperを幾つか、ざっと読んでみた。 まだよく理解出来ない所も多いけど、Haskellって面白い。 http://echo.5ch.net/test/read.cgi/tech/1317958045/196
197: デフォルトの名無しさん [sage] 2011/10/21(金) 08:52:36.35 >>194 細かい抽象化は全体からみれば効果がないだろうよ http://echo.5ch.net/test/read.cgi/tech/1317958045/197
198: デフォルトの名無しさん [sage] 2011/10/21(金) 09:48:20.45 >>196 鳥先生に興味が出てきたら早速ピアソンのサイトへ行ってAlgebra of Programmingを手に入れるんだ http://echo.5ch.net/test/read.cgi/tech/1317958045/198
199: デフォルトの名無しさん [sage] 2011/10/21(金) 10:38:23.33 >>197 何を優先してるかで違うのは当然だが、抽象化のセンスを見るのにも いいとは思うがな。ボイラープレイトを取り除くにしても、この手の単純な 抽象化が出来なければ難しく感じるだろう。 余談だが、この辺の抽象化のセンスってLispのマクロを作るセンスにも通じ てる印象がある。マクロで関数を作成するにしてもマクロを作成するにして もボイラープレイと除去と同じセンス必要なので。 http://echo.5ch.net/test/read.cgi/tech/1317958045/199
200: デフォルトの名無しさん [sage] 2011/10/21(金) 11:19:02.96 >>192のアイデアを水平合成とみて>>186のに適用するとこんな感じ? type Magma a = a -> a -> a class MonadZero m where mzero :: m a class MonadZero m => MonadOr m where mor :: Magma (m a) class MonadZero m => MonadPlus m where mplus :: Magma (m a) instance MonadZero [] where mzero = [] instance MonadOr [] where mor xs = if null xs then id else const xs instance MonadPlus [] where mplus = (++) fizz = cycle $ replicate 2 mzero `mplus` return "Fizz" buzz = cycle $ replicate 4 mzero `mplus` return "Buzz" fizzbuzz = zipWith mplus fizz buzz main = print $ zipWith mor fizzbuzz $ map show [1..100] listモナドの和を論理和(つまりMaybeモナドの和)、数値和の二通りに見ることで数値和で作ったfizzbuzzのパターンと数字のパターンを論理和で合成する・・・と Listを信号としてみれば、もろor回路による信号の合成だよな。始まる場所が変わることに対してはdrop等で開始位置をずらしてつまり信号のdelay回路か SignalArrowを使った抽象化でもいけそうに見えるな それはさておき垂直合成、つまりモナド変換子を使うのはどうなるんだろうか FizzT (FuzzT Identity Int) [String]みたいな型になればそれっぽいんだけど http://echo.5ch.net/test/read.cgi/tech/1317958045/200
201: デフォルトの名無しさん [sage] 2011/10/21(金) 12:37:44.28 >>194 で、いざHaskellでEnumeratorとモナド使ったfor記法が定義されたら 嬉々として使うんだろ? http://echo.5ch.net/test/read.cgi/tech/1317958045/201
202: デフォルトの名無しさん [sage] 2011/10/21(金) 12:43:09.39 >>201 いらないよ。ループ系ですらほとんど使わないのに。 http://echo.5ch.net/test/read.cgi/tech/1317958045/202
203: デフォルトの名無しさん [sage] 2011/10/21(金) 12:50:12.54 >>201 それってfoldlとどう違うの? http://echo.5ch.net/test/read.cgi/tech/1317958045/203
204: デフォルトの名無しさん [sage] 2011/10/21(金) 14:40:50.67 >>201 そんな書き込みして何が楽しいの? http://echo.5ch.net/test/read.cgi/tech/1317958045/204
205: デフォルトの名無しさん [sage] 2011/10/21(金) 17:53:37.66 >>189 思考が言語を作ったが 今や言語が思考を制限するのですね http://echo.5ch.net/test/read.cgi/tech/1317958045/205
206: デフォルトの名無しさん [sage] 2011/10/21(金) 18:00:38.90 自然言語では当たり前の話だが、言語=思考なんだよ。 http://echo.5ch.net/test/read.cgi/tech/1317958045/206
207: デフォルトの名無しさん [sage] 2011/10/21(金) 18:07:06.79 自然言語ですら異論ありまくりだよ http://echo.5ch.net/test/read.cgi/tech/1317958045/207
208: デフォルトの名無しさん [sage] 2011/10/21(金) 18:27:55.96 たとえばMatzあたりがよく引き合いに出すが、そんなに支持されてる仮説じゃない あと、エキスパートの思考は言語化できないことが多い http://echo.5ch.net/test/read.cgi/tech/1317958045/208
209: デフォルトの名無しさん [sage] 2011/10/21(金) 19:45:59.14 エスパーの思考に見えた http://echo.5ch.net/test/read.cgi/tech/1317958045/209
210: デフォルトの名無しさん [sage] 2011/10/21(金) 21:08:24.89 明日筑波でHaskellな話してくるよ! http://echo.5ch.net/test/read.cgi/tech/1317958045/210
211: デフォルトの名無しさん [sage] 2011/10/21(金) 21:33:02.92 まだハスプラ更新されない 毎回のように延期するんならもうちょっと余裕を持ってスケジュール宣言しとけよ http://echo.5ch.net/test/read.cgi/tech/1317958045/211
212: デフォルトの名無しさん [sage] 2011/10/21(金) 21:47:04.40 ドラクエみたいなモンだよ スケジュール通りに発売されたドラクエなんて、逆に心配だろ? http://echo.5ch.net/test/read.cgi/tech/1317958045/212
213: デフォルトの名無しさん [sage] 2011/10/21(金) 22:00:15.46 確かに長々と書いたC++のコードが一発でコンパイル通った時くらい眉唾だな http://echo.5ch.net/test/read.cgi/tech/1317958045/213
214: デフォルトの名無しさん [sage] 2011/10/21(金) 22:25:17.56 >>198 URLぷりーず。 ピアソン? http://echo.5ch.net/test/read.cgi/tech/1317958045/214
215: デフォルトの名無しさん [sage] 2011/10/21(金) 23:43:26.13 >>210 Matz王国へ乗り込むんだな。 http://echo.5ch.net/test/read.cgi/tech/1317958045/215
216: デフォルトの名無しさん [sage] 2011/10/21(金) 23:54:23.33 >>214 つhttp://www.pearsoned.co.uk/bookshop/detail.asp?item=100000000010900 http://echo.5ch.net/test/read.cgi/tech/1317958045/216
217: デフォルトの名無しさん [sage] 2011/10/22(土) 16:35:01.20 Winでgtk2hs使えるようにするのって大変っぽい? linuxだとcabalをapt-getで入れて、gtk-buildingToolsをcabalで入れれば良いだけみたいなんだけど、Winのgtk2hsインストール手順が別になってて複雑っぽい。。。 http://echo.5ch.net/test/read.cgi/tech/1317958045/217
218: デフォルトの名無しさん [sage] 2011/10/22(土) 16:47:47.56 最新の Haskell Platform を入れているのなら、以下の手順でインストールできる 1. http://www.gtk.org/download/win32.php へ行き、 All-in-one bundles のバージョン 2.16 をダウンロード(2.22 ではダメ) 2. All-in-one bundles を展開してホワイトスペースが無いパスに置き、 All-in-one bundles の \bin ディレクトリへのパスを環境変数 %PATH% に追加する 3. GHC インストールフォルダ内の mingw/bin ディレクトリへのパスも 環境変数 %PATH% に追加する 4. cabal install gtk2hs-buildtools 次いで cabal install gtk 最新の Haskell Platform にある GHC のバージョンより 高いバージョンの GHC を入れていたり、別の環境だったりした場合、 どうするかは知らん http://echo.5ch.net/test/read.cgi/tech/1317958045/218
219: デフォルトの名無しさん [sage] 2011/10/22(土) 17:18:04.17 >>218 ありがとう やってみます http://echo.5ch.net/test/read.cgi/tech/1317958045/219
220: デフォルトの名無しさん [sage] 2011/10/22(土) 17:20:56.32 filter 関数とか、いいかげん型クラスの関数にして、 ライブラリの構造を整理してほしいな http://echo.5ch.net/test/read.cgi/tech/1317958045/220
221: デフォルトの名無しさん [sage] 2011/10/22(土) 17:54:16.39 >>218 失敗したみたいなんですが、cドライブ直下だとダメとか、ありますでしょうか? http://echo.5ch.net/test/read.cgi/tech/1317958045/221
222: デフォルトの名無しさん [sage] 2011/10/22(土) 18:02:28.53 今更気付きましたが、Win7のx64環境です だからダメと言う事は在るのでしょうか? ghcにあわせてwin32版を落として設定して失敗してます http://echo.5ch.net/test/read.cgi/tech/1317958045/222
223: デフォルトの名無しさん [sage] 2011/10/22(土) 18:28:23.45 >>222 ごめん、言い忘れてた 私の環境は OS : Windows7 Home Premium 32bit Haskell Platform : 2011.2.0.1 これ以外の環境でどうやるかは分からない > だからダメと言う事は在るのでしょうか? あるんじゃないかな 64 bit 版の All-in-one bundles でやってみたらどう? さっき提示したページの上部に [Download] のリンクがあるから、 そこから 64 bit 版へ飛べる(まだ実験バージョンだと書かれているが) http://echo.5ch.net/test/read.cgi/tech/1317958045/223
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 755 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s