関数型プログラミング言語Haskell Part17
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2012/01/02(月) 22:19:28.26ttp://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/
0153デフォルトの名無しさん
2012/01/08(日) 15:19:15.80やったことないです、、、
@kazu_yamamotoさんに聞いてみルトいいかも
0154デフォルトの名無しさん
2012/01/08(日) 15:25:29.61もちろん言語選択時に考慮するだろ
0155デフォルトの名無しさん
2012/01/08(日) 15:27:02.910156デフォルトの名無しさん
2012/01/08(日) 15:36:00.480157デフォルトの名無しさん
2012/01/08(日) 15:40:42.17foo = $(tupleReplicate 2)と展開した上で名前に束縛すればfooについて当然型名がかえって来るけど
確かhaskellのインタプリタ(not ghci)が走ってるプロセスを持ってて
バッファの内容を食わせた上で指定した文字列でそいつに問い合わせてるから、
トップレベルで名前を持ってない定義だと上手く参照してくれないんじゃないかと思う
0158デフォルトの名無しさん
2012/01/08(日) 15:59:20.600159デフォルトの名無しさん
2012/01/08(日) 17:11:37.66> よくわからんが、型を集合(Set圏の対象)と考える場合、HaskellのFunctorは
> 型から型(集合から集合)への対応で、Set圏で完結していると考えられるから
> 基本無理なんじゃない?
結局は、解釈、モデル化の仕方の問題だけど、
関数以外のArrowクラスのインスタンスを射として考えるならば、
それはHask圏=Set圏の射ではないから、
Hask圏の部分圏と考えることはできない圏を考えていることになる
0160デフォルトの名無しさん
2012/01/08(日) 19:13:49.14/::::::::::::::::::::::::::::::;;::ノ ヽ;::\
/::::::::;;;;;;;;;,,,;;...-‐''"~ ヽ:;::l
|:::::::::::| 岡田 異音 |ミ|
|:::::::/ ,,, ヽ,、 '|ミ|
'|:::::::l '''"" ゙゙゙゙` |ミ|
|:::::|. ,,r ‐、 ,, - 、 |/
,/⌒| ノ ・ _), (. ・ `つ|
| ( "''''" |"'''''" |
ヽ,,. ヽ |
| ^-^_,, -、 |
| _,, --‐''~ ) | マニフェストもう守れない。どうしよう・・・・
'ヽ ( ,r''''''‐-‐′ /
震災後
|:::::::::/ |ミ|
|::::::::| ,,,,, ,,,,, |ミ|
|彡|. '''"""'' ''"""'' |/
/⌒| -=・=‐, =・=- |
| ( "''''" | "''''" |
.ヽ,, ヽ .| キリッ
| ^-^ |
. | ‐-===- | 大震災が起こったのだからマニフェストの破綻も致し方ありません
,\. "'''''''" /
朝鮮民主党
おわり
0161デフォルトの名無しさん
2012/01/09(月) 20:15:30.30x=10
x=11
これってHaskellでどう書くの?
0162デフォルトの名無しさん
2012/01/09(月) 20:19:11.150163デフォルトの名無しさん
2012/01/09(月) 20:36:13.49関数型は変数の意味が違うよ。適当な教科書を読んでみましょう
0164デフォルトの名無しさん
2012/01/09(月) 20:41:21.78main = do
let x = 10
let x = 11
print x
0165デフォルトの名無しさん
2012/01/09(月) 21:27:31.04サンクス
0166デフォルトの名無しさん
2012/01/09(月) 23:34:33.20main =
let x = 10 >>
let x = 11 >>
print x
0167デフォルトの名無しさん
2012/01/10(火) 00:08:36.44do
let ***
###
これは、プリプロセッサで次のように変換される
let *** in do ###
これを踏まえて考えれば・・・
0168デフォルトの名無しさん
2012/01/10(火) 07:53:20.130169デフォルトの名無しさん
2012/01/10(火) 09:41:18.37野田内閣は過半数が帰化人
野田はどうだろうか
韓国人から賄賂を貰い、韓国人の集いに出席している野田は
0170デフォルトの名無しさん
2012/01/10(火) 15:47:47.65東郷開発環境wwwwwww
って誰か言ってくれると思ったのに。。。
0171デフォルトの名無しさん
2012/01/10(火) 19:42:08.90東郷開発環境wwwwwww
0172デフォルトの名無しさん
2012/01/10(火) 20:31:46.910173デフォルトの名無しさん
2012/01/11(水) 03:08:02.860174デフォルトの名無しさん
2012/01/11(水) 18:47:00.090175デフォルトの名無しさん
2012/01/11(水) 18:55:22.750176デフォルトの名無しさん
2012/01/11(水) 19:22:23.15こうか
main =
let x = 10
in let x = 13
in print x
つーかこの式って(>>)か(>>=)を使って表現出来ないの?
副作用にはモナドを使うんじゃないの? わかんないです><
0177デフォルトの名無しさん
2012/01/11(水) 19:25:03.27勝手に変な方向に誘導するなよ
>>174 は論理的な思考ではなく「発想」と言っている
発想、つまり ヒラメキ☆ だ
0178デフォルトの名無しさん
2012/01/11(水) 19:25:13.02ラムダ計算の項としてみたら全く別物
0179デフォルトの名無しさん
2012/01/11(水) 19:32:06.33そう
最後の print 関数が副作用を持っている
だから「この」 main関数の型は IO () だ
君はちゃんと副作用にはモナドを使っているんだよ
なにが分からん?
> つーかこの式って(>>)か(>>=)を使って表現出来ないの?
もしかして、こういうこと?
main = return 10 >> return 13 >>= print
0180デフォルトの名無しさん
2012/01/11(水) 22:20:24.86800 自分:名無し募集中。。。[] 投稿日:2012/01/08(日) 22:00:50.04 0
AKBブーム捏造の裏
サウンドスキャンの売り上げでさえほとんどが業者の自社買い他社買いで
資金洗浄した金額がオリコンの枚数×CDの価格って感じかね
http://livedoor.blogimg.jp/dqnplus/imgs/f/f/fff69a26.jpg
0181デフォルトの名無しさん
2012/01/11(水) 23:18:15.23同じことをC言語で書くとこんな感じ
void main() {
const int x = 10; {
const int x = 13; {
printf("%d", x); }}}
副作用があるのは最後のprintfだけ。
途中のx=13は代入ではなくてたまたま名前が同じ新しい定数の定義。
0182デフォルトの名無しさん
2012/01/11(水) 23:52:21.030183デフォルトの名無しさん
2012/01/12(木) 07:42:44.45(オブジェクト指向を直接的に支援する機構はない)
0184デフォルトの名無しさん
2012/01/12(木) 10:52:41.77間接的ヒラメキ
0185デフォルトの名無しさん
2012/01/12(木) 11:51:38.40http://www.haskell.org/haskellwiki/OOP_vs_type_classes
0186デフォルトの名無しさん
2012/01/12(木) 16:10:46.592chやニコニコ動画に民主党から反日工作費が流れていることが知られるようになってきた。
民主党が用意した資金で工作員が2chを荒らしていることもだんだんと知られるようになってきた
0187デフォルトの名無しさん
2012/01/12(木) 21:48:47.06ghc にオプションを渡す方法ってありますか?
例えば -XFlexibleInstances とか
0188デフォルトの名無しさん
2012/01/12(木) 21:53:26.270189デフォルトの名無しさん
2012/01/12(木) 22:08:16.42もしかして、cabal install --help で表示それるオプション リストの
--with-PROG=PATH や --PROG-options=OPTS などの PROG って、
ここに ghc や c2hs などのコマンド名を入れろって事か
どおりで --with-PROG=ghc なんてゃってもエラーが出るわけだ
やっと最後に表示されてる
The flags --with-PROG and --PROG-option(s) can be used
with the following programs:
の意味が分かったよ
ありがと
0190デフォルトの名無しさん
2012/01/13(金) 12:53:13.89ある型で特殊化することはできるのでしょうか
たとえば元々 f :: [a] -> a という関数があったとして、
a が Int 型の時は別の計算をさせたいから f :: [Int] -> Int
という型の「同名の」関数も欲しい場合です
下記のように型クラスを作るしか方法はないでしょうか
そうすると、Int 型以外の型にも全て
インスタンスを宣言しないといけないので大変です
class F a where
f :: [a] -> a
f = 汎用的な計算
instance F Int where
f = 特殊な計算
instance F Bool
instance F Char
・・・
0191デフォルトの名無しさん
2012/01/13(金) 13:59:50.390192質問です
2012/01/13(金) 18:40:35.10モナドのデータ m b を作り出すことがなんで『合成』なの?
0193デフォルトの名無しさん
2012/01/13(金) 18:47:24.240194デフォルトの名無しさん
2012/01/13(金) 18:53:11.740195質問です
2012/01/13(金) 19:01:34.54http://tnomura9.exblog.jp/15241458/
>>= 演算子はMaybe型関数とMaybe型関数を
合成する演算子になる、とありました
0196デフォルトの名無しさん
2012/01/13(金) 19:21:57.88Maybe圏からMaybe圏への関手だ、ぐらいの表現で良いのでは
合成と言うのは違う気がする
0197デフォルトの名無しさん
2012/01/13(金) 19:32:17.88OverlappingInstances拡張がどのようなものか見てきました
http://www.haskell.org/haskellwiki/GHC/AdvancedOverlap
なかなか難しいですね、がんばって解読してみます
ありがとうございました
0198デフォルトの名無しさん
2012/01/13(金) 21:08:33.18直積?
0199デフォルトの名無しさん
2012/01/13(金) 23:01:33.650200デフォルトの名無しさん
2012/01/13(金) 23:59:10.31@aritayoshifu 有田芳生
捜査当局が内偵を続けている農水疑惑。詳細な怪文書まで出回っている。3億円の
行方はどこに?
@minorucchu ジャーナリスト 田中稔
野田改造内閣を揺るがす、農水省3億円スキャンダルの怪文書。二人の議員名が浮上。
34分前 webから
https://twitter.com/#!/minorucchu/status/157687110562881537
鹿野と筒井らしい
自公は問責も視野に調査開始だって
0201デフォルトの名無しさん
2012/01/14(土) 09:49:15.55ハスケルはメタパラダイム言語だとか
ふざけんなってのw
0202デフォルトの名無しさん
2012/01/14(土) 09:54:29.570203デフォルトの名無しさん
2012/01/14(土) 10:24:18.990204デフォルトの名無しさん
2012/01/14(土) 10:50:14.56バスに乗り遅れた奴が使う言葉
0205デフォルトの名無しさん
2012/01/14(土) 10:54:46.750206デフォルトの名無しさん
2012/01/14(土) 11:02:45.90HaskellでOOPもできるんだよ
ただしそのパラダイムの為に設計された言語ではないので
可読性落ちたりするから推奨されないというだけの話
0207デフォルトの名無しさん
2012/01/14(土) 11:04:31.600208デフォルトの名無しさん
2012/01/14(土) 12:09:55.380209デフォルトの名無しさん
2012/01/14(土) 16:46:37.25反日ネット工作員
朝日新聞社→社員約300人
民主党とその取り巻きの資金が入った反日工作会社→数社約450人
朝日新聞の社員は捕まった49歳の編集者を含め新聞記事を書く合間に2chを荒らしている程度とみられているが
民主党が用意した反日工作会社はほぼ24時間体制で工作を行っている
工作範囲は民主党が予め工作費を流している2ch、ニコニコ動画を中心にyoutube、個人のブログなどである。
0210デフォルトの名無しさん
2012/01/14(土) 20:55:07.120211デフォルトの名無しさん
2012/01/14(土) 20:59:45.86OOは複雑すぎてわからないと言ってみたかと思ったら
OOはしょせんこの程度のモデルに過ぎないからと言ってみたり
全く参照透明ではないw
0212デフォルトの名無しさん
2012/01/14(土) 21:44:45.71推奨されないと言われても
禁止されているようなものだと思うか、禁止されていないと思うかで全く違う
推奨なんて中途半端なことをするから解釈がコロコロ変わる
0213デフォルトの名無しさん
2012/01/15(日) 00:17:59.85発言を時間の関数と思えば参照透明。
これがHaskell流だ
0214デフォルトの名無しさん
2012/01/15(日) 08:56:17.00「メタパラダイム言語」という言葉は、このスレが初出です。
「Haskellはメタパラダイム」というtweetの話をしているんですよね?
Haskellは○○
http://togetter.com/li/241437
>Haskellはメタパラダイム tanakh 2012/01/13 17:38:41
もともとtanakhは「モナドはメタパラダイム」と主張しているので
モナドを取り込んだHaskellもメタパラダイムと考えたのでしょう。
モナドが様々なパラダイムを実現できると主張する事と
有用でないパラダイムをディスる事は別に矛盾してないのでは?
0215デフォルトの名無しさん
2012/01/15(日) 12:31:26.23FNN 2010年7月4日
民主党 29.9% 自民党 16.3%
ttp://sankei.jp.msn.com/politics/policy/100706/plc1007060530003-n1.htm
ttp://www.fnn-news.com/archives/yoron/inquiry100705.html
マスコミに、ダマされるなよ。
0216デフォルトの名無しさん
2012/01/15(日) 14:30:28.52何から始めるんでしょうか
0217デフォルトの名無しさん
2012/01/15(日) 14:44:29.280218デフォルトの名無しさん
2012/01/15(日) 14:45:25.41読んできます
0219デフォルトの名無しさん
2012/01/15(日) 14:51:53.710220デフォルトの名無しさん
2012/01/15(日) 14:54:38.77vipperだから
0221デフォルトの名無しさん
2012/01/15(日) 16:57:17.93有用でないという証明がまるでできてないのに?
根拠らしきものは、難しくて理解できない、って発言ぐらいだけど…
0222デフォルトの名無しさん
2012/01/15(日) 17:00:31.21その理屈だとチューリング完全な言語はみなメタパラダイムになるぞww
0223デフォルトの名無しさん
2012/01/15(日) 17:30:52.32っていうのは適切な表現だと思うけどなぁ
継続や動的スコープが欲しくなったら処理系に手を入れずともモナドで実現できるわけだし
モナド変換子でそれらを組み合わせることもできる
0224デフォルトの名無しさん
2012/01/15(日) 17:54:23.52他パラダイムが有用でないという判断がでたらめでも
「Haskellはメタパラダイム」は別に矛盾しません。
>>222
「メタパラダイム言語」の次は「逐次実行モデルっぽいことができるだけで」ですか。
ソースを示さずに捏造を繰り返している事を自覚してください。
tanakhがモナドで逐次実行モデル以外も実装できると主張しているソース
http://tanakh.jp/pub/unisys-tech-2011-11-09.html#37
>モナドから見た命令型
>計算コンテクストの1つに過ぎない
>その他:
> ・論理型
> ・オブジェクト指向
> ・アスペクト, etc…
>これらはモナドのコンテクストとして実装できる
0225デフォルトの名無しさん
2012/01/15(日) 18:53:37.75どんなパラダイムだって実装できる
0226デフォルトの名無しさん
2012/01/15(日) 20:41:23.81モナドを使えば後付けのパラダイムを言語に取りこめるという話でしょう。
Lispのマクロでもできますが、チューリング完全だけでは無理です。
0227デフォルトの名無しさん
2012/01/15(日) 21:05:04.33つーかモナドなんて手続き型言語でも簡単に実装できるが、Haskellを特別視する理由は?
まさかdo構文(ただの構文糖)の有無を特別視してるのか?
0228デフォルトの名無しさん
2012/01/15(日) 21:26:47.750229デフォルトの名無しさん
2012/01/15(日) 21:34:13.26要は抽象化の問題だろ。
手続型がどうとか言う話じゃない。
あるパラダイムをモナドの中に押し込めて隠すことが出来るという意味で「取りこめる」と言ってるんだと思う。
LISP もマクロで覆ってしまえばプログラマはそのライブラリを愚直に使うだけのこと。
抽象度がイマイチな言語でも、もちろん様々なパラダイムに基いたプログラムは書けるけれど、
それはプログラマが意識しながらプログラムを書くということであって、
言語の中に (ライブラリ等として) パラダイムを取込むとは言えないと思う。
ってことだと理解した。
0230デフォルトの名無しさん
2012/01/15(日) 22:08:51.73具体的なインスタンスを比較しない限り同じに見えるはずだ。それが抽象化だ。
異なるパラダイムを取り込めるのではなく、なぜか同じだから取り込める。
0231デフォルトの名無しさん
2012/01/15(日) 22:15:50.51静的型付けの言語では、型クラスがないとreturnを多相にできないの?
0232デフォルトの名無しさん
2012/01/15(日) 22:24:00.26でもそれは、Cでも構造体と関数ポインタ使えばOOPできるよ、というのと同じような話なわけ
モナドをヘビーに使い込むようなスタイルのプログラミングをするなら、Haskellを特別視する理由になるよね
0233デフォルトの名無しさん
2012/01/15(日) 22:30:19.48型クラスが存在しない静的型付き言語において、
暗黙の引数を明示的に与えるようにする以外の方法では、returnを多相にできないの?
0234デフォルトの名無しさん
2012/01/15(日) 22:30:46.350235デフォルトの名無しさん
2012/01/15(日) 22:35:55.76できないんじゃない?
戻り値の型の情報はどこからとってくるの?
0236デフォルトの名無しさん
2012/01/15(日) 22:47:24.22多相というのは、つまりoverloading(アドホック多相)のことね
0237デフォルトの名無しさん
2012/01/15(日) 22:54:06.87型クラスはad-hoc polymorphismと型推論を両立するためにless ad-hocにする手段で
型推論を捨てるなりすれば型クラスはなくても多相はできるでしょうと
0238デフォルトの名無しさん
2012/01/15(日) 23:29:31.36モナド則の有難味を感じるのはIOくらい。
0239デフォルトの名無しさん
2012/01/15(日) 23:54:42.51野田内閣は過半数が帰化人
野田はどうだろうか
韓国人から賄賂を貰い、韓国人の集いに出席している野田は
首になった蓮○はシャブで逮捕歴のある人間と仲が良いな。蓮○自身はやってんの?
い-6-1
テレビが言えない民主党のスポンサー=韓国北朝鮮
あとはもうわかるよな
0240デフォルトの名無しさん
2012/01/16(月) 07:38:13.190241デフォルトの名無しさん
2012/01/16(月) 07:41:22.96すいません、解決しました
Graphics.UI.WXCore.Image や Graphics.UI.WXCore.Draw 辺りばかり見ていましたが、
Graphics.UI.WXCore.WxcClassesAL に望むものがありました
0242デフォルトの名無しさん
2012/01/16(月) 08:39:44.77> Cでも構造体と関数ポインタ使えばOOPできるよ、というのと同じような話なわけ
Haskellでもモナドと型クラス使えばOOPできるよ、というのと同じような話なわけだね
OOPを簡潔に書けないからね
0243デフォルトの名無しさん
2012/01/16(月) 08:43:19.870244デフォルトの名無しさん
2012/01/16(月) 09:33:47.83今、他の言語がtype classみたいな機能を導入検討中ですぜ?
0245デフォルトの名無しさん
2012/01/16(月) 12:01:33.44>モナドをヘビーに使い込むようなスタイルのプログラミングをするなら、Haskellを特別視する理由になるよね
「モナド」と「Haskell」を他の組み合わせにすればどんな言語についても言えることだろ。モナド(Haskell)を特別視する理由に全くなってない
0246デフォルトの名無しさん
2012/01/16(月) 12:39:05.61IOモナドをヘビーに使い込むようなスタイルのプログラミングをするなら、正格評価をする言語を特別視する理由になるよね
こういうことですか?
0247デフォルトの名無しさん
2012/01/16(月) 17:11:15.74多相=サブタイプ多相だと思ってるOO脳と同類だな
0248デフォルトの名無しさん
2012/01/16(月) 17:29:56.980249デフォルトの名無しさん
2012/01/16(月) 19:02:10.12モナドの利点は>>223 >>224 >>226など(>>226はモナドというより、後付けでインスタンスを追加できる型クラスの利点?)
0250デフォルトの名無しさん
2012/01/16(月) 19:08:13.39他パラダイムを実装する枠組みがモナドである必然性はゼロ。
参照透明である必然性もゼロ。型クラスを使う必然性もゼロ。
0251デフォルトの名無しさん
2012/01/16(月) 19:12:22.89モナドを使って他パラダイムのエミュレートができると気付いただけ
他パラダイムのエミュレートにモナドが不可欠ではないし
モナドが他パラダイムにベストな解法であるわけでもない
単に、モナドで表現すること「も」できるね、ということでしかない
0252デフォルトの名無しさん
2012/01/16(月) 22:44:00.17■ このスレッドは過去ログ倉庫に格納されています