[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
504: [―{}@{}@{}-] デフォルトの名無しさん [sage] 2011/11/12(土) 18:54:26.76 AAS
あと、Haskellだってオブジェクト指向じゃないし静的型付けだけど、
レシーバ(に相当するもの)の型に依存して名前解決を行えるようにしようという提案があって、
それが>>483483(1): デフォルトの名無しさん [sage] 2011/11/12(土) 16:28:53.90 AAS
外部リンク:hackage.haskell.org
これがあれば短い名前を使って衝突しても解決してくれるという触れ込みだけどどうなんだろう
個人的には曖昧エラーの山になりそうだと思うんだが
SPJは使いものになると考えてるらしい
505: デフォルトの名無しさん [sage] 2011/11/12(土) 18:57:39.73 AAS
SMLとHaskellは同じ
Rubyは普通のOOPをやってる
新しい話題は無いわけね
506(1): デフォルトの名無しさん [sage] 2011/11/12(土) 18:58:06.93 AAS
ようやく数セミにモナドの解説出たか。やっぱ京大スゲーわ。
507: デフォルトの名無しさん [sage] 2011/11/12(土) 19:06:28.43 AAS
ここで出ている話題だと
コンパイル時に実装が選択できれば十分で
OOPの動的束縛を持ち出すのは道具が大きすぎな気がした
508(2): デフォルトの名無しさん [sage] 2011/11/12(土) 22:08:46.75 AAS
僕ハスケルでOOPしたいです先生
509: デフォルトの名無しさん [sage] 2011/11/12(土) 22:23:45.34 AAS
>>508
多相レコードを使え…あったっけ?
510: デフォルトの名無しさん [sage] 2011/11/12(土) 23:01:33.64 AAS
>>508
どういうのをOOPと言ってるの?
何がどうできたらOOPと言っていいの?
511: デフォルトの名無しさん [sage] 2011/11/13(日) 00:47:50.77 AAS
どんな言語でもまともなプログラムを作ろうと思うったらOOPしない方が難しい
512: デフォルトの名無しさん [sage] 2011/11/13(日) 00:53:06.55 AAS
定義と思ってるものが各人違うから
外部リンク:ja.m.wikipedia.org
- カプセル化 (振る舞いの隠蔽とデータ隠蔽)
- インヘリタンス (継承) --クラスベースの言語
- ポリモフィズム (多態性、多相性) --型付きの言語
- ダイナミックバインディング (動的束縛) --インタープリタの言語 この機能
これらの機能のうち、オブジェクト指向の考え方で不可欠なのは「カプセル化」の機能だけである
513: デフォルトの名無しさん [sage] 2011/11/13(日) 00:58:52.92 AAS
隠蔽かあ。あんまり良い定義とも思えないな
PythonとかOOPLでなくなってしまう
なんでこう日本語版のWikipediaは(略
514: デフォルトの名無しさん [sage] 2011/11/13(日) 01:03:23.86 AAS
そう思うのなら翻訳よろしく
外部リンク:en.wikipedia.org
515: デフォルトの名無しさん [sage] 2011/11/13(日) 01:16:28.24 AAS
やさしいHaskell入門 型クラスと多重定義
外部リンク[html]:www.sampou.org
Haskell vs OOP
外部リンク:d.hatena.ne.jp
OOP vs type class
外部リンク:www.haskell.org
↓こういう考えかたも、分かりやすいと思うんだけどな。
Clojureは、皆さんがオブジェクト指向から望む多くのものを提供 *して* います。
外部リンク:www.infoq.com
516: デフォルトの名無しさん [sage] 2011/11/13(日) 01:18:40.31 AAS
> ダイナミックバインディング (動的束縛) --インタープリタの言語 この機能
これ dynamic dispatch のことだよね
インタープリタの言語じゃなくてもあると思うんだけど
517: デフォルトの名無しさん [sage] 2011/11/13(日) 01:20:07.80 AAS
オブジェクト指向といえば、こんなのも有るよ。
Perl5's Moose ロールベース?のオブジェクト指向
外部リンク[html]:perldoc.perlassociation.org
518: デフォルトの名無しさん [sage] 2011/11/13(日) 01:36:57.23 AAS
宣言的とのことなので、ロールじゃ無くてルールだった。
そういえば、動的型付け言語も動的ディスパッチする部分を型推論したり、
宣言する方向で高速化してるな。
519: デフォルトの名無しさん [sage] 2011/11/13(日) 01:45:46.50 AAS
What is "Object-Oriented Programming?" [B. Stroustrup ECOOP '87] によれば
(subtype) polymorphismとADTの組み合わせだと言ってる
データ隠匿やデータ抽象だけならADTで可能だけど、これだけではOOPじゃない
520: デフォルトの名無しさん [sage] 2011/11/13(日) 02:46:52.16 AAS
それは二つに分岐した一方のオブジェクト指向ではないかい?
521: デフォルトの名無しさん [sage] 2011/11/13(日) 03:05:26.23 AAS
Haskellの型クラスとかインスタンスという用語は
OOPの用語と重なっているからまぎらわしい
もちろんHaskellの型クラスがOOPのクラスとは全く異なる概念であることは
調べればすぐに理解できることだけど、
いざHaskellのFPとOOPを対比させた説明を始めようとすると、
いちいち「Haskellのクラスは...」と「OOPのクラスは...」というように修飾が必要
522: デフォルトの名無しさん [sage] 2011/11/13(日) 03:10:45.95 AAS
もう一つのオブジェクト指向のひとたちは、環境全体を考えるから分かりにくいね。
オブジェクト指向プログラミング:筋悪だったのか?
外部リンク:www.infoq.com
523(2): デフォルトの名無しさん [sage] 2011/11/13(日) 08:17:08.75 AAS
#Ruby の人でHaskellを勉強したいと思っている人はけっこういる。
Haskellの人でRubyに興味がある人はあんまりいない。
両方使えるならHaskell使うだろ。
つまりそういうことだ。
ちなみにRubyはListをmapしたらArrayになる。こんなのをほったらかし
たままで新しい構文がどうのこうの言っている。Rubyはオワコン
524: デフォルトの名無しさん [sage] 2011/11/13(日) 08:42:40.27 AAS
>>506
は?京大なんて傲慢レポート何位だと思ってんだよ?
525: デフォルトの名無しさん [sage] 2011/11/13(日) 09:05:28.47 AAS
>>523
> ちなみにRubyはListをmapしたらArrayになる。
どゆこと?
526: デフォルトの名無しさん [sage] 2011/11/13(日) 09:15:34.66 AAS
言葉通りの意味だろ
527: デフォルトの名無しさん [sage] 2011/11/13(日) 09:26:08.75 AAS
いやだってRubyにListってクラスは(多分)無いし、
Listと同じように扱えてmapを呼べるArrayはmapしてもArrayを返す
rb> a1 = [1, 2, 3]
=> [1, 2, 3]
rb> a1.class
=> Array
rb> a2 = a1.map{|e| e * 2 }
=> [2, 4, 6]
rb> a2.class
=> Array
なのでもう少し説明が欲しい
528: デフォルトの名無しさん [sage] 2011/11/13(日) 09:26:50.55 AAS
トートロジー
上下前次1-新書関写板覧索設栞歴
あと 450 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s