[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
511: 2011/11/13(日)00:47 AAS
どんな言語でもまともなプログラムを作ろうと思うったらOOPしない方が難しい
512: 2011/11/13(日)00:53 AAS
定義と思ってるものが各人違うから
外部リンク:ja.m.wikipedia.org
- カプセル化 (振る舞いの隠蔽とデータ隠蔽)
- インヘリタンス (継承) --クラスベースの言語
- ポリモフィズム (多態性、多相性) --型付きの言語
- ダイナミックバインディング (動的束縛) --インタープリタの言語 この機能
これらの機能のうち、オブジェクト指向の考え方で不可欠なのは「カプセル化」の機能だけである
513: 2011/11/13(日)00:58 AAS
隠蔽かあ。あんまり良い定義とも思えないな
PythonとかOOPLでなくなってしまう
なんでこう日本語版のWikipediaは(略
514: 2011/11/13(日)01:03 AAS
そう思うのなら翻訳よろしく
外部リンク:en.wikipedia.org
515: 2011/11/13(日)01:16 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: 2011/11/13(日)01:18 AAS
> ダイナミックバインディング (動的束縛) --インタープリタの言語 この機能
これ dynamic dispatch のことだよね
インタープリタの言語じゃなくてもあると思うんだけど
517: 2011/11/13(日)01:20 AAS
オブジェクト指向といえば、こんなのも有るよ。
Perl5's Moose ロールベース?のオブジェクト指向
外部リンク[html]:perldoc.perlassociation.org
518: 2011/11/13(日)01:36 AAS
宣言的とのことなので、ロールじゃ無くてルールだった。
そういえば、動的型付け言語も動的ディスパッチする部分を型推論したり、
宣言する方向で高速化してるな。
519: 2011/11/13(日)01:45 AAS
What is "Object-Oriented Programming?" [B. Stroustrup ECOOP '87] によれば
(subtype) polymorphismとADTの組み合わせだと言ってる
データ隠匿やデータ抽象だけならADTで可能だけど、これだけではOOPじゃない
520: 2011/11/13(日)02:46 AAS
それは二つに分岐した一方のオブジェクト指向ではないかい?
521: 2011/11/13(日)03:05 AAS
Haskellの型クラスとかインスタンスという用語は
OOPの用語と重なっているからまぎらわしい
もちろんHaskellの型クラスがOOPのクラスとは全く異なる概念であることは
調べればすぐに理解できることだけど、
いざHaskellのFPとOOPを対比させた説明を始めようとすると、
いちいち「Haskellのクラスは...」と「OOPのクラスは...」というように修飾が必要
522: 2011/11/13(日)03:10 AAS
もう一つのオブジェクト指向のひとたちは、環境全体を考えるから分かりにくいね。
オブジェクト指向プログラミング:筋悪だったのか?
外部リンク:www.infoq.com
523(2): 2011/11/13(日)08:17 AAS
#Ruby の人でHaskellを勉強したいと思っている人はけっこういる。
Haskellの人でRubyに興味がある人はあんまりいない。
両方使えるならHaskell使うだろ。
つまりそういうことだ。
ちなみにRubyはListをmapしたらArrayになる。こんなのをほったらかし
たままで新しい構文がどうのこうの言っている。Rubyはオワコン
524: 2011/11/13(日)08:42 AAS
>>506
は?京大なんて傲慢レポート何位だと思ってんだよ?
525: 2011/11/13(日)09:05 AAS
>>523
> ちなみにRubyはListをmapしたらArrayになる。
どゆこと?
526: 2011/11/13(日)09:15 AAS
言葉通りの意味だろ
527: 2011/11/13(日)09:26 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: 2011/11/13(日)09:26 AAS
トートロジー
529: 2011/11/13(日)09:45 AAS
イテレータであるEnumerableから実際のコンテナにアクセスするとかそういう意味ならばまだ分かったんだけどなぁ>rubyのmap
530(1): 2011/11/13(日)10:27 AAS
>>523
そもそもRubyは関数型言語ではないんだよね
関数風の(=関数型言語スタイルの)プログラミングも可能だというだけで....
厳しく言えば、Rubyでは関数(メソッド)はファーストクラスじゃないし、
末尾再帰も最適化されないからすぐにスタックオーバーフローする
自分達の優位な土俵で下位レベルの言語をつかまえて、
自身の優越感に浸るとは、なんともはや心の狭い発想じゃないのかと思われ
そんなにもHaskellという言語に対して自信が無いの?
もっと胸を張ってもいいと思うんだけどなあ....
531: 2011/11/13(日)10:33 AAS
その点トッポって凄いよな
末尾までちゃんとチョコが再帰してる
532(1): 2011/11/14(月)04:23 AAS
>>530
>>473のどこから優越感が云々という話になるのか分からんのだが
Rubyは言語仕様を読むとけっこう滅茶苦茶、細部をつつくと大変な事になる言語だが
一方で、言語仕様の「良さ」で支持されてきた言語でもある
悪い意味じゃなくてHaskellとは対照的な感覚があると思うけど
533: 2011/11/14(月)08:04 AAS
>>532
どこから473が出てきたのか分からんのだが
523は俺が読んでも酷いレスに思える
534: 2011/11/14(月)16:30 AAS
そろそろ純粋関数型とそうじゃないやつは分けて話そうぜ
Lisp対Haskell並に不毛な議論
最強を決めたいなら、とりあえずラムダ計算にしとけばいいよ
535: 2011/11/14(月)16:46 AAS
ラムダ計算vs型付きラムダ計算
536: 2011/11/14(月)16:54 AAS
Typed Pi-CalculusとTyped Join Calculusも虎視眈々と最強を狙ってる。
537: 2011/11/14(月)18:34 AAS
まーちんれふでも意味分からんのにホモとピーとか有向型理論とかどんどんでてきてついていけせんねん
538(1): [さげ] 2011/11/14(月)18:43 AAS
君たちがなんかやっても、外人Haskell使いのほうが詳しいし
何でHaskellやるの?教えて???
539(1): 2011/11/14(月)18:56 AAS
釈迦の教えに通じるから
540(2): やんやん ◆yanyan72E. 2011/11/14(月)21:07 AAS
Haskellは現代数学をWikipediaで勉強するレベルの人間が
粋がって数学用語を多用するのがなんか鼻に付く。
上下前次1-新書関写板覧索設栞歴
あと 438 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.024s