トップページtech
990コメント380KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2012/01/02(月) 22:19:28.26
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/
0153デフォルトの名無しさん2012/01/08(日) 15:19:15.80
>>152
やったことないです、、、
@kazu_yamamotoさんに聞いてみルトいいかも
0154デフォルトの名無しさん2012/01/08(日) 15:25:29.61
IDE有る無しで開発効率に影響するのなら、
もちろん言語選択時に考慮するだろ
0155デフォルトの名無しさん2012/01/08(日) 15:27:02.91
統合開発環境の「統合」って、最近流行った「絆」と同じセンスだよね
0156デフォルトの名無しさん2012/01/08(日) 15:36:00.48
C#とかは言語設計段階からIDEと相性良くなるように考えられてると感じる
0157デフォルトの名無しさん2012/01/08(日) 15:40:42.17
>>152
foo = $(tupleReplicate 2)と展開した上で名前に束縛すればfooについて当然型名がかえって来るけど
確かhaskellのインタプリタ(not ghci)が走ってるプロセスを持ってて
バッファの内容を食わせた上で指定した文字列でそいつに問い合わせてるから、
トップレベルで名前を持ってない定義だと上手く参照してくれないんじゃないかと思う
0158デフォルトの名無しさん2012/01/08(日) 15:59:20.60
勝って兜の緒を締めよ開発環境
0159デフォルトの名無しさん2012/01/08(日) 17:11:37.66
>>118
> よくわからんが、型を集合(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.30
すっごい初心者ですまないんだけど

x=10
x=11

これってHaskellでどう書くの?
0162デフォルトの名無しさん2012/01/09(月) 20:19:11.15
書けない
0163デフォルトの名無しさん2012/01/09(月) 20:36:13.49
>>161
関数型は変数の意味が違うよ。適当な教科書を読んでみましょう
0164デフォルトの名無しさん2012/01/09(月) 20:41:21.78
こう書くんだよ

main = do
let x = 10
let x = 11
print x
0165デフォルトの名無しさん2012/01/09(月) 21:27:31.04
>>164
サンクス
0166デフォルトの名無しさん2012/01/09(月) 23:34:33.20
>>164をこう↓できると思ったんだけど無理だった、何故?
main =
 let x = 10 >>
 let x = 11 >>
 print x
0167デフォルトの名無しさん2012/01/10(火) 00:08:36.44
>>166
do
let ***
###

これは、プリプロセッサで次のように変換される

let *** in do ###

これを踏まえて考えれば・・・
0168デフォルトの名無しさん2012/01/10(火) 07:53:20.13
2-3 Finger Tree を閃いた奴、発想が良いな
0169デフォルトの名無しさん2012/01/10(火) 09:41:18.37
民主党には朝鮮人など外国人のなりすまし、スパイが約90名在籍している

野田内閣は過半数が帰化人

野田はどうだろうか
韓国人から賄賂を貰い、韓国人の集いに出席している野田は
0170デフォルトの名無しさん2012/01/10(火) 15:47:47.65
>>158
東郷開発環境wwwwwww



って誰か言ってくれると思ったのに。。。
0171デフォルトの名無しさん2012/01/10(火) 19:42:08.90
申し訳ありませんでした

東郷開発環境wwwwwww
0172デフォルトの名無しさん2012/01/10(火) 20:31:46.91
G13型トラクターか...
0173デフォルトの名無しさん2012/01/11(水) 03:08:02.86
東郷開発環境wwwwwww
0174デフォルトの名無しさん2012/01/11(水) 18:47:00.09
論理的な発想ができない連中がなぜHaskellのスレッドにいるのか不思議。
0175デフォルトの名無しさん2012/01/11(水) 18:55:22.75
論理的思考と等式推論を使えることに相関は無い
0176デフォルトの名無しさん2012/01/11(水) 19:22:23.15
>>167
こうか
main =
 let x = 10
 in let x = 13
    in print x

つーかこの式って(>>)か(>>=)を使って表現出来ないの?
副作用にはモナドを使うんじゃないの? わかんないです><
0177デフォルトの名無しさん2012/01/11(水) 19:25:03.27
>>175
勝手に変な方向に誘導するなよ
>>174 は論理的な思考ではなく「発想」と言っている

発想、つまり ヒラメキ☆ だ
0178デフォルトの名無しさん2012/01/11(水) 19:25:13.02
letはλ抽象でモナドを使った式は関数適用
ラムダ計算の項としてみたら全く別物
0179デフォルトの名無しさん2012/01/11(水) 19:32:06.33
>>176
そう

最後の print 関数が副作用を持っている
だから「この」 main関数の型は IO () だ

君はちゃんと副作用にはモナドを使っているんだよ
なにが分からん?

> つーかこの式って(>>)か(>>=)を使って表現出来ないの?

もしかして、こういうこと?

main = return 10 >> return 13 >>= print
0180デフォルトの名無しさん2012/01/11(水) 22:20:24.86

800 自分:名無し募集中。。。[] 投稿日: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
>>176

同じことをC言語で書くとこんな感じ

void main() {
 const int x = 10; {
  const int x = 13; {
   printf("%d", x); }}}

副作用があるのは最後のprintfだけ。
途中のx=13は代入ではなくてたまたま名前が同じ新しい定数の定義。
0182デフォルトの名無しさん2012/01/11(水) 23:52:21.03
Haskellでオブジェクト指向ってどうやるの?
0183デフォルトの名無しさん2012/01/12(木) 07:42:44.45
オブジェクト指向のどの部分を真似したいかによる
(オブジェクト指向を直接的に支援する機構はない)
0184デフォルトの名無しさん2012/01/12(木) 10:52:41.77
HaskellでCを真似しながらCでオブジェクト指向を真似する
間接的ヒラメキ
0185デフォルトの名無しさん2012/01/12(木) 11:51:38.40
HaskellでOOPをやる方法
http://www.haskell.org/haskellwiki/OOP_vs_type_classes
0186デフォルトの名無しさん2012/01/12(木) 16:10:46.59


2chやニコニコ動画に民主党から反日工作費が流れていることが知られるようになってきた。
民主党が用意した資金で工作員が2chを荒らしていることもだんだんと知られるようになってきた
0187デフォルトの名無しさん2012/01/12(木) 21:48:47.06
パッケージを cabal install する時に、
ghc にオプションを渡す方法ってありますか?

例えば -XFlexibleInstances とか
0188デフォルトの名無しさん2012/01/12(木) 21:53:26.27
cabal install --ghc-options=-XFlexibleInstances
0189デフォルトの名無しさん2012/01/12(木) 22:08:16.42
>>188
もしかして、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.39
OverlappingInstances拡張を使って、instance F a
0192質問です2012/01/13(金) 18:40:35.10
モナドのデータ m a と 関数 f :: a -> m b を使って、
モナドのデータ m b を作り出すことがなんで『合成』なの?
0193デフォルトの名無しさん2012/01/13(金) 18:47:24.24
どこでそんな表現が使われてた
0194デフォルトの名無しさん2012/01/13(金) 18:53:11.74
複数の小さいデータを組み合わせて大きいデータを作るなら合成でいいんじゃね
0195質問です2012/01/13(金) 19:01:34.54
>>193 ここです
http://tnomura9.exblog.jp/15241458/
>>= 演算子はMaybe型関数とMaybe型関数を
合成する演算子になる、とありました
0196デフォルトの名無しさん2012/01/13(金) 19:21:57.88
>>=は自然変換joinで自己関手を写像したものだから
Maybe圏からMaybe圏への関手だ、ぐらいの表現で良いのでは
合成と言うのは違う気がする
0197デフォルトの名無しさん2012/01/13(金) 19:32:17.88
>>191
OverlappingInstances拡張がどのようなものか見てきました
http://www.haskell.org/haskellwiki/GHC/AdvancedOverlap

なかなか難しいですね、がんばって解読してみます

ありがとうございました
0198デフォルトの名無しさん2012/01/13(金) 21:08:33.18
2つのモナドm1,m2の合成の自然な定義はあるのでしょうか?
直積?
0199デフォルトの名無しさん2012/01/13(金) 23:01:33.65
さいなら。
0200デフォルトの名無しさん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
あれだけ他パラダイムをdisりまくったその口で
ハスケルはメタパラダイム言語だとか
ふざけんなってのw
0202デフォルトの名無しさん2012/01/14(土) 09:54:29.57
メタパラダイム言語って言葉の意味が分からないからなんとも言えない
0203デフォルトの名無しさん2012/01/14(土) 10:24:18.99
メタって便利な言葉だよな
0204デフォルトの名無しさん2012/01/14(土) 10:50:14.56
「そろそろパラダイムについて一言言っておくか」ってことだろ
バスに乗り遅れた奴が使う言葉
0205デフォルトの名無しさん2012/01/14(土) 10:54:46.75
マルチパラダイムと言いたかったのではないかと推測してみる
0206デフォルトの名無しさん2012/01/14(土) 11:02:45.90
CでOOPができるしJavaでFPができるだろ
HaskellでOOPもできるんだよ
ただしそのパラダイムの為に設計された言語ではないので
可読性落ちたりするから推奨されないというだけの話
0207デフォルトの名無しさん2012/01/14(土) 11:04:31.60
ぷでゆきさんは1年ぐらい前にマルチパラダイムは幻想とか言ってからそれはないだろうな
0208デフォルトの名無しさん2012/01/14(土) 12:09:55.38
人のいうことを鵜呑みにしていいのかい?
0209デフォルトの名無しさん2012/01/14(土) 16:46:37.25

反日ネット工作員
朝日新聞社→社員約300人
民主党とその取り巻きの資金が入った反日工作会社→数社約450人

朝日新聞の社員は捕まった49歳の編集者を含め新聞記事を書く合間に2chを荒らしている程度とみられているが
民主党が用意した反日工作会社はほぼ24時間体制で工作を行っている
工作範囲は民主党が予め工作費を流している2ch、ニコニコ動画を中心にyoutube、個人のブログなどである。

0210デフォルトの名無しさん2012/01/14(土) 20:55:07.12
政治的なアナザー・ワールドの人がHaskellerってありえないよね?
0211デフォルトの名無しさん2012/01/14(土) 20:59:45.86
あの人、言うことコロコロかわるから。
OOは複雑すぎてわからないと言ってみたかと思ったら
OOはしょせんこの程度のモデルに過ぎないからと言ってみたり
全く参照透明ではないw
0212デフォルトの名無しさん2012/01/14(土) 21:44:45.71
>>206
推奨されないと言われても
禁止されているようなものだと思うか、禁止されていないと思うかで全く違う
推奨なんて中途半端なことをするから解釈がコロコロ変わる
0213デフォルトの名無しさん2012/01/15(日) 00:17:59.85
>>211
発言を時間の関数と思えば参照透明。
これがHaskell流だ
0214デフォルトの名無しさん2012/01/15(日) 08:56:17.00
>>201
「メタパラダイム言語」という言葉は、このスレが初出です。
「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.23
民主党が惨敗した参院選直前の政党支持率(2010年7月11日投票)

FNN 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
VIPからきました
何から始めるんでしょうか
0217デフォルトの名無しさん2012/01/15(日) 14:44:29.28
テンプレ読むところからだろ。
0218デフォルトの名無しさん2012/01/15(日) 14:45:25.41
そりゃもっともで
読んできます
0219デフォルトの名無しさん2012/01/15(日) 14:51:53.71
なんでvipから来た奴ってわざわざ名乗るんだろうな
0220デフォルトの名無しさん2012/01/15(日) 14:54:38.77
>>219
vipperだから
0221デフォルトの名無しさん2012/01/15(日) 16:57:17.93
>>214
有用でないという証明がまるでできてないのに?
根拠らしきものは、難しくて理解できない、って発言ぐらいだけど…
0222デフォルトの名無しさん2012/01/15(日) 17:00:31.21
それ以前に逐次実行モデルっぽいことができるだけでメタパラダイムとかw
その理屈だとチューリング完全な言語はみなメタパラダイムになるぞww
0223デフォルトの名無しさん2012/01/15(日) 17:30:52.32
「モナドは値レベルでメタプログラミングをするための手段」
っていうのは適切な表現だと思うけどなぁ
継続や動的スコープが欲しくなったら処理系に手を入れずともモナドで実現できるわけだし
モナド変換子でそれらを組み合わせることもできる
0224デフォルトの名無しさん2012/01/15(日) 17:54:23.52
>>221
他パラダイムが有用でないという判断がでたらめでも
「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
>>225
モナドを使えば後付けのパラダイムを言語に取りこめるという話でしょう。
Lispのマクロでもできますが、チューリング完全だけでは無理です。
0227デフォルトの名無しさん2012/01/15(日) 21:05:04.33
パラダイムを言語に取り込めるとやらの定義は?
つーかモナドなんて手続き型言語でも簡単に実装できるが、Haskellを特別視する理由は?
まさかdo構文(ただの構文糖)の有無を特別視してるのか?
0228デフォルトの名無しさん2012/01/15(日) 21:26:47.75
bindはクロージャが無いと無理だし、静的型付けの言語でreturnを多相にするなら型クラスが居るよね
0229デフォルトの名無しさん2012/01/15(日) 21:34:13.26
俺は >>226 ではないが、言いたいことはわからんでもない。
要は抽象化の問題だろ。
手続型がどうとか言う話じゃない。

あるパラダイムをモナドの中に押し込めて隠すことが出来るという意味で「取りこめる」と言ってるんだと思う。
LISP もマクロで覆ってしまえばプログラマはそのライブラリを愚直に使うだけのこと。

抽象度がイマイチな言語でも、もちろん様々なパラダイムに基いたプログラムは書けるけれど、
それはプログラマが意識しながらプログラムを書くということであって、
言語の中に (ライブラリ等として) パラダイムを取込むとは言えないと思う。

ってことだと理解した。
0230デフォルトの名無しさん2012/01/15(日) 22:08:51.73
モナドは全部同じだろ。
具体的なインスタンスを比較しない限り同じに見えるはずだ。それが抽象化だ。
異なるパラダイムを取り込めるのではなく、なぜか同じだから取り込める。
0231デフォルトの名無しさん2012/01/15(日) 22:15:50.51
>>228
静的型付けの言語では、型クラスがないとreturnを多相にできないの?
0232デフォルトの名無しさん2012/01/15(日) 22:24:00.26
暗黙の引数を明示的に与えるようにすれば多相にできるよ
でもそれは、Cでも構造体と関数ポインタ使えばOOPできるよ、というのと同じような話なわけ
モナドをヘビーに使い込むようなスタイルのプログラミングをするなら、Haskellを特別視する理由になるよね
0233デフォルトの名無しさん2012/01/15(日) 22:30:19.48
>>232
型クラスが存在しない静的型付き言語において、
暗黙の引数を明示的に与えるようにする以外の方法では、returnを多相にできないの?
0234デフォルトの名無しさん2012/01/15(日) 22:30:46.35
抽象化をしたいなら特別視なんてやめたほうがいいと思う
0235デフォルトの名無しさん2012/01/15(日) 22:35:55.76
>>233
できないんじゃない?
戻り値の型の情報はどこからとってくるの?
0236デフォルトの名無しさん2012/01/15(日) 22:47:24.22
型というか、型によって選択された実装をどこからとってくるか、だった。ごめんね
多相というのは、つまりoverloading(アドホック多相)のことね
0237デフォルトの名無しさん2012/01/15(日) 22:54:06.87
つまりad-hoc polymorphismを実現する手段として型クラスは必要条件ではないと思った
型クラスはad-hoc polymorphismと型推論を両立するためにless ad-hocにする手段で
型推論を捨てるなりすれば型クラスはなくても多相はできるでしょうと
0238デフォルトの名無しさん2012/01/15(日) 23:29:31.36
モナドであることの利点と型クラスの利点を切り分けられていない人が多い。
モナド則の有難味を感じるのはIOくらい。
0239デフォルトの名無しさん2012/01/15(日) 23:54:42.51
民主党には朝鮮人など外国人のなりすまし、スパイが約90名在籍している
野田内閣は過半数が帰化人

野田はどうだろうか
韓国人から賄賂を貰い、韓国人の集いに出席している野田は

首になった蓮○はシャブで逮捕歴のある人間と仲が良いな。蓮○自身はやってんの?
い-6-1
テレビが言えない民主党のスポンサー=韓国北朝鮮
あとはもうわかるよな

0240デフォルトの名無しさん2012/01/16(月) 07:38:13.19
wxHaskell でバイト配列のポインタ (Ptr Word8) から Image 型を作る方法はありませんか
0241デフォルトの名無しさん2012/01/16(月) 07:41:22.96
>>240
すいません、解決しました

Graphics.UI.WXCore.Image や Graphics.UI.WXCore.Draw 辺りばかり見ていましたが、
Graphics.UI.WXCore.WxcClassesAL に望むものがありました
0242デフォルトの名無しさん2012/01/16(月) 08:39:44.77
>>232
> Cでも構造体と関数ポインタ使えばOOPできるよ、というのと同じような話なわけ

Haskellでもモナドと型クラス使えばOOPできるよ、というのと同じような話なわけだね
OOPを簡潔に書けないからね
0243デフォルトの名無しさん2012/01/16(月) 08:43:19.87
OOPと同じ手段は使えないけどOOPで実現したいことは簡潔に書ける(ドヤ
0244デフォルトの名無しさん2012/01/16(月) 09:33:47.83
>>242
今、他の言語がtype classみたいな機能を導入検討中ですぜ?
0245デフォルトの名無しさん2012/01/16(月) 12:01:33.44
>>232
>モナドをヘビーに使い込むようなスタイルのプログラミングをするなら、Haskellを特別視する理由になるよね
「モナド」と「Haskell」を他の組み合わせにすればどんな言語についても言えることだろ。モナド(Haskell)を特別視する理由に全くなってない
0246デフォルトの名無しさん2012/01/16(月) 12:39:05.61
>>232
IOモナドをヘビーに使い込むようなスタイルのプログラミングをするなら、正格評価をする言語を特別視する理由になるよね

こういうことですか?
0247デフォルトの名無しさん2012/01/16(月) 17:11:15.74
多相=アドホック多相だと思ってるハスケル脳は
多相=サブタイプ多相だと思ってるOO脳と同類だな
0248デフォルトの名無しさん2012/01/16(月) 17:29:56.98
Haskellはadhoc多相だけではないので念の為。
0249デフォルトの名無しさん2012/01/16(月) 19:02:10.12
手続き型言語でも簡単に実装できるが、Haskellを特別視する理由、に対する返答なんだからそれはおかしいんでは
モナドの利点は>>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
where や let 内で定義する関数には INLINE プラグマは付けられない?
■ このスレッドは過去ログ倉庫に格納されています