18:28:38
icon

昨日からなんか違和感あるなぁって思ってたけど、今朝頭の中でこのツイート読んでて気づいた。 参照「等価」性じゃなくて、参照「透過」性だわ。 #プログラミング #Haskell twitter.com/opaupafz2/stat…

19:08:35
icon

Haskellの型クラス、思っていた以上にRustのトレイトだなぁ。型クラスを継承(と言って良いのかはわからんが)したら基底のインスタンスも必要になるし。 #プログラミング #Haskell #Rust

19:08:36
icon

強いて違うところを挙げるとすれば、同名の関数(Rustでいうメソッド)を定義するのがそもそも不可能である、ということぐらいか。

19:24:36
icon

まぁこの辺は名前空間による関数の区別があるかないかの違いだから、大した問題じゃないね。

19:42:13
icon

うーん、今ふと思ったのだが、Rust、混同しやすい名前つけすぎでは。 まず参照、次にトレイト、最後にクロージャ。 特にクロージャに関してはクロージャ(環境キャプチャ)でクロージャ(関数閉包)を作ることもできるので、本当に紛らわしい。

19:44:48
icon

参照はC++やC#の参照と似てはいるけど、再代入とかはできないので、違うものとして扱っています。

19:51:22
icon

学習難易度の高さはこの混同しやすい名前が多いことも関係していると思う。現に、俺はRustの参照を最初C++の参照と同じだと思ったしな。

20:27:50
icon

たとえば、「RustのトレイトはSchärli氏の提唱したトレイトとは違います」みたいな注意書きがあれば、混同する確率はぐっと下がると思うんだけど、それすらないからな。PHPのオーバーロードはちゃんと「他言語のオーバーロードとは違います」って説明してくれているのに。不親切だよね。

22:57:17
icon

@kawamineka PythonモジュールはCで実装されていることが多いので(randomはまさにそれです)、モジュールは極力活用したほうが良いです。

23:27:16
icon

知らなかった・・・Python、3.8で:=演算子によって条件文の中でも代入できるようになってたんか・・・

23:29:20
icon

というか、本来の代入の記号って:=だからなぁ・・・代入の演算子で:=を使っているプログラミング言語は少ない印象だけど・・・。

23:46:39
icon

この条件文でも代入が使える便利さはCのソースコードを書いたことがある人ならよーくわかるはず。