[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
863: [―{}@{}@{}-] 2011/12/25(日)19:45 AAS
>>860
実際にコードを読んだり(自動でも手動でも)最適化する場合に
直接手を下しているかどうかが重要になるんだから仕方ない
864
(1): 2011/12/25(日)19:48 AAS
Moggiが表示的意味論(もちろんI/O、状態、並列などが扱われている)で
使われている技法に共通構造を見出した。
それがどんな構造かってのは、数学分からない人には、絶対に演繹的に理解できないです。
数々のMonadを体得することで帰納的に理解してください。
帰納的な理解だから身体動かさないと無理です。
頑張ってMonad入門を読みこなして、さらにプログラムを書いてください。
865: 2011/12/25(日)20:02 AAS
茂木=サン
866: 2011/12/25(日)20:21 AAS
継続やストリームを使ったIOの表現よりも、
モナドを使ったIOの表現の方がシンプルで、処理を追いやすい

IOモナドが作られた理由はこれに尽きるだろ
867
(3): 2011/12/25(日)20:21 AAS
>>858 >>864
ああ、また見捨てられてしもた。いっつもこうや。わしに学がないばっかりに。
ふつうのプログラムはやってるから、あのIOやエラーは知ってるし、
Maybeなんちゅうのがあるらしいのも知ってるけど、そんなんじゃ
話がわからんちゅうこっちゃろな。
Monad入門ってどこにあるんですか?
今日は冷えるわ。
868: 2011/12/25(日)20:27 AAS
>>861
問題意識がおもしろそう。
参照透明性が厳密に表現できると、モナドも厳密に表現できるのでは
という動機?
869: 2011/12/25(日)20:36 AAS
IOモナドに関してはこれがいい。
特にボトムアップで理解したい人。実装について触れられてる。
外部リンク:haskell.org
870: 2011/12/25(日)20:50 AAS
>>867
俺も学の無い人間だけど、モナドはOOPでいうインターフェースに当たる型クラスって機能を使って構築されてるって言えば何をしたいものか大体わかる?
871: 2011/12/25(日)21:58 AAS
Haskell で GUI のアプリ作った・作ってる人っている?
872
(1): 2011/12/25(日)22:04 AAS
XMonadの拡張なら
873
(1): [―{}@{}@{}-] 2011/12/25(日)22:10 AAS
オセロなら
874: 2011/12/25(日)23:04 AAS
>>872,873
Haskell でも MVC や Doc-View アーキテクチャが基本なの?

Model あるいは Doc の部分ってどうやって実装してる?
やっぱり IORef のようなミュータブルな IO モナドになっちゃうのかな
875: [―{}@{}@{}-] 873 2011/12/25(日)23:14 AAS
MVCっぽい感じだった
モデルにはMVar使ってた
876
(1): 2011/12/25(日)23:39 AAS
ちゃんと教えてあげなよ。
>>867
Schemeになるが、Semantic Lego
外部リンク[2885]:citeseer.ist.psu.edu
877: 2011/12/25(日)23:46 AAS
インストール作業が非常に面倒だった記憶があるから、
インストールする前に訊きたいんだが、

以前 windows 上で wxHaskell を使ってた時は、
ghci では動かせず、動作を試すのにいちいちコンパイルしてたんだ

今(ghc 7.2.2、wx-0.12.1.6)でもそうなの?
878
(2): 2011/12/26(月)01:50 AAS
>>867じゃないけど>>876面白いな
モナドとモナド変換子を使ってプログラミング言語の意味を表現しておけば
そこからその言語のインタプリタを自動生成してくれるのか
879
(2): 2011/12/26(月)10:20 AAS
>> 878
>モナドとモナド変換子を使ってプログラミング言語の意味を表現しておけば
>そこからその言語のインタプリタを自動生成してくれる
そりゃできるに決まってるよ、と思うのだが、そう思うのってあまりにdetailに
鈍感ってことかなあ?
ところで、このときモナドが本質的(モナドだからできる)ってことでもない
と思うのだが、どうですか?
880: 2011/12/26(月)10:31 AAS
>>879
構文と意味を分離するのだから、モナドが相当本質的ではないの?
881: 2011/12/26(月)15:45 AAS
ようやくlearn you a haskell ~ を2周読み終えるわ。この本やっぱり
面白かった。純粋な関数型のデータ構造を扱うための入門にも向いてるよ。
特に最後の2つの章がね。
ただの入門かと思ったけど、そうでもなかった感じがした。

もちろん、ちょっと話題になってるモナド変換子のことは現実世界Haskell
になってくる。でも、Learn you a Haskell~を2,3度読むと基礎は十分
じゃないかと思った。

ええ本ですわ。
882
(1): 2011/12/26(月)15:51 AAS
他の本も同時に読んでるけど、Tree based tech-nick の言語でもあるし
なにもかも他とは異質という印象があった。LispやSmalltalk,Prologと
は違うまた異質な世界。

でも、オブジェクト指向でやったほうが良いようなシミュレーションの問題
などは向いてないなと思った。Haskellでもできないことはないというのは、
ライブラリを探して、サンプルを見てたら分かるんだけど、無理矢理感が
拭えないな。

簡単なところを学んだあとに改めてHaskellというのを考えたけど、学んで
有益だったのか明確な答えがでなかった。

ここのベテランさん達はHaskellを学んで、そして実用的?に利用して何が良
かったと感じてますか?
883: 2011/12/26(月)15:52 AAS
technique だったな。
884
(2): 2011/12/26(月)15:54 AAS
もうひとつ感じたことh,HaskellのタプルはLispのconsみたいなもんなんだな。ってね。consとtupleは違う点ももちろん明確なんだけど。
885
(1): 2011/12/26(月)20:04 AAS
>>882
・便利な機能(というより、無いと苦痛な機能)が揃ってる
 代数的データ型、型クラス、型推論、…
・構文が簡潔なので書いていて苦痛が少ない(括弧を閉じなくて良いのは大きい)
・静的な型

もっと地味に良いところはたくさん挙げれられる
 GC、生ポインタ操作、パーサコンビネータ、ユーザレベルスレッド、並列処理、
 do構文、where構文、純粋であること、末尾再帰の最適化、…
でも個人的な感覚としては、他の言語に比べて大きな欠点が少ないから使ってる
886
(2): 2011/12/26(月)20:04 AAS
>>884
問1. HaskellのタプルとLispのconsの共通点は何?
問2. その共通点は本質的なものか?
887
(1): 2011/12/26(月)21:40 AAS
>>878
2時間たらずでそこまで理解できたなら大したもんだ。
自動生成というか、各プログラミング言語の概念(環境、ストア、継続)をモジュール化することで、
レゴのブロックのように意味の組み合わせが可能になる言語の枠組みとして使えるという内容。
いろんな先入観を払拭するのに最適だし。
残念ながら入出力については実装があたえられていないので、言語SLは実践的にはまったく使い物にならない。
逆に言えば、入出力をちゃんと理解して組み込めるようにすれば、実用的にも結構すごいことだと思う。
888: 2011/12/26(月)23:00 AAS
表示的意味論の教科書でも大抵入出力は端折ってる。
889: 2011/12/26(月)23:25 AAS
>>885
そうですか。更に学べば面白いところありそうですね。:-)
>>886
自分が感じたのは、便利な小物扱いしてるところ。consを使ったもので
associate listというものがあるんだけど、その扱いと特に似てると感じた。
tupleは無名構造体という言い方をするとどこかで読んだことがあるけど、
もちろんtupleでリストを作るわけではないので違いは歩けd.
890: 878 2011/12/26(月)23:55 AAS
>>879
俺がモナドをよく知らないから新鮮に思えるだけかも

>>887
説明ありがとう
Haskellerがモナドモナドうるさい理由がちょっと解ってきたよ
891: 2011/12/27(火)00:02 AAS
うるさくはないよ。控え目だよ。
892: 2011/12/27(火)04:33 AAS
うるさくはないよ。針小棒大だよ。
1-
あと 86 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.023s