型クラスに関するここ数日の議論

ここ数日で型クラスに関する議論が何故かもりあがっていたので、一通りひろってまとめてみました。型クラスというお題で色々なところで議論が同時多発していた感じなので、全体の流れとかはあまりないです。
6
cobot_1 @cobot_1

型クラスがうんぬんというのが好きなクラスタは現実の世界をモデルに落とし込んでアプリケーションを構築するのが得意じゃない印象を受けるのは何故なのかしら。

2017-05-21 12:04:59
フォクすけ @nerubesa

Scalaで型クラスを使おう! - Qiita ift.tt/2r0RLJQ

2017-05-21 13:26:22
Cubbit @cubbit2

何故かと言うと、そういう印象を持つ人は、型クラスを使って実用的なアプリケーションがすでに書かれていることを知らず、表面的なブログや百科事典的な記述だけから、「型クラスがうんぬんというのが好きなクラスタ」の実態を想像しているからですね twitter.com/cobot_1/status…

2017-05-21 13:39:18
都元ダイスケ🍅 @daisuke_m

@cocoatomo まだ型クラスがよくわかってないので、その辺の理解が望まれる。

2017-05-21 20:59:09
tomo🐧@learning @cocoatomo

@daisuke_m 型クラスの解説は, 初級編とか中級編みたいな名前で, 複数の連続しない節に分かれてるから, それらが頭の中で繋げられてないかも.

2017-05-21 21:07:45
誰か僕の右股関節と性根を何とかしてください @kamekoopa

型クラスと型クラスのインスタンスと言うのが何だか分かっていて、その上で自前で型クラスのインスタンスを定義して使用するやり方が分からない人向け / Scalaで型クラスを使おう! - Qiita - qiita.com/kmizu/items/b6…

2017-05-22 09:58:39
西田和史(k.bigwheel) 開発基盤エンジニア @ Speee ⌨️🦀🖊️ @k_bigwheel

scalaがimplicitでmixinと型クラスを実現しているのは良いのか悪いのか。kmizuさんがわざわざqiitaで記事書かないと行けないぐらいには使い方わかりづらいけど、言語デザインとしては仕様がミニマムになって良いのかもしれない?

2017-05-22 21:00:44
西田和史(k.bigwheel) 開発基盤エンジニア @ Speee ⌨️🦀🖊️ @k_bigwheel

@kmizu 型クラスが一般に浸透しているなら、型クラスと拡張メソッドをimplicits1つで提供するのではなくそれぞれ別の言語機能として提供してもいいようなきがするんですよね。

2017-05-22 21:16:53
Kota Mizushima (on a diet) @kmizu

@k_bigwheel 名前とか、関連する用語が、オブジェクト指向言語の用語とかぶっているせいで、誤解を生みやすいという構造もあると思っています。自分が知る限り、型クラスに関する最も多い誤解が「(Java等における)インタフェースのようなもの」というもので

2017-05-22 21:35:31
西田和史(k.bigwheel) 開発基盤エンジニア @ Speee ⌨️🦀🖊️ @k_bigwheel

@kmizu 型クラスといいつつ、実際に使うときはクラスは宣言せずインスタンス(object)を宣言するところも僕はちょっと引っかかりました。というか今でもなんかしっくり来ていないですねw( qiita.com/kmizu/items/b6… ならRational が型クラスなんだと思いますが )

2017-05-22 21:40:53
Kota Mizushima (on a diet) @kmizu

型クラスというのがそもそも結構むずかしいのだ、という認識のもとで、理解を広めるための記事を書くのが良さそうだというのが最近よく思うところ。そのときに、Scalaは割とましなのは、アリガチ誤解である「インタフェースのようなもの」を割と簡単に否定可能なところだと思う。

2017-05-22 21:40:58
Kota Mizushima (on a diet) @kmizu

ところで、Haskell界隈においては、「型クラスがわからない」というのはあまりないように思えるのだけど(違っていたらすいません)、それはHaskellを実用的に使う上で型クラスを理解しないでいるのが無理だから、生きているHaskellユーザは皆理解している、のだ思う。

2017-05-22 21:46:40
Kota Mizushima (on a diet) @kmizu

Scalaにおいては、型クラスのOOPL流の実現であるところのimplicit parameterについて、特に理解しなくてもある程度使うことができる一方で、implicit parameterを多用したライブラリも結構見るようになったので、わからんという話が出てくるのだと思う。

2017-05-22 21:48:36
しょしー @syocy

Scalaで型クラスを作るときのimplicit objectという表記がおもしろい。それ自体の名前で呼ばれるわけではないのでobjectとは思えないが、ただ一つの実体というのはobjectという感じがする。

2017-05-22 21:49:32
NaOHaq(苛性ソーダ) @NaOHaq

はじめてHaskellを触ったとき、Int と Integer は型、Integral は型クラスで、Integral a => a が「Integralであるような型a」を表すということがわからなくてエラーメッセージが全く読めなくて困った記憶がある

2017-05-22 21:51:58
kaki @gengar68

型クラス、「interfaceのすごいやつ」的な説明をしがちなんだけど、よろしくないのかな。interface + デフォルト実装が持てる + 関数型に限定されない で大体あってない?駄目?

2017-05-22 21:55:08
κeen @blackenedgold

Haskellが読めなかったころがあまり思い出せないけどモナドとかの高階カインドな型が出てきたあたりで辛かったような。型クラスは「まさにこれが欲しかったんだよ」って思ってた

2017-05-22 21:55:32
Kota Mizushima (on a diet) @kmizu

はてなブログに投稿しました #はてなブログ 型クラスをOrderingを用いて説明してみる - kmizuの日記 kmizu.hatenablog.com/entry/2017/05/…

2017-05-22 22:46:28
kaki @gengar68

implicit parameter方式、デフォルトと異なる引数を渡せるのが魅力的に見える。Haskellみたいに完全に隠蔽しちゃうとそれができないよね。しかもHaskellだと型クラスのインスタンス定義はグローバルにしかできなくて云々。

2017-05-22 23:16:37
はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー) @nobkz

Scala、implicit parameterは型クラスなんだろうけど、型クラス知らなくても、implicit parameterは分かるから、あんまり型クラス、型クラス言わないほうが良いのでは?

2017-05-22 23:50:21
はなだ☆のぶかず@lisp &ボドゲ勢ボドゲプレイヤー) @nobkz

型クラスと言わない、implicit parameterの説明をしなければならない気がする。

2017-05-22 23:51:44
1 ・・ 8 次へ