regonn&curry.fm

regonnとcurrypurinがデータサイエンス・機械学習(主にKaggle)について話します。新しい働き方や量子コンピュータ、VR等寄り道もしていきます。

6. Juliaの多重ディスパッチ

2018年10月16日

MP3ファイルをダウンロード

内容紹介

れごんとカレーちゃんがデータサイエンス(主にKaggle)について話していきます。今週は質問にあったJulia言語の多重ディスパッチについてや、noteでのマネタイズ、勉強会、今週やったことについて話しています。

出演者


regonn

currypurin

リスナーからの質問

  • 言語屋さんではないので詳しくは話せないけど、Julia が Class を使わない理由は多重ディスパッチと呼ばれる仕組みを採用しているから。おそらく、Go とか Rust は別の理由(未調査)

    • 多重ディスパッチは関数の全ての引数の型マッチングで対応するメソッドを呼ぶ方法
    • 同じ関数名で複数のメソッドが定義される
      • 科学計算等で、型によって処理を変えられるため重宝する(引数が Int Int の場合と Float Float の場合とで別の処理を定義することができる)
    • オブジェクト一つ一つがメソッドを持っているわけではなく、関数オブジェクトがまとめてメソッドを持っている
    • 似たように多重ディスパッチを採用しているのは Common Lisp
    • なので、Julia は Ruby や Python のような 純粋オブジェクト指向言語ではないが、疑似的なオブジェクト指向の書き方ができる

    • 多重ディスパッチ - Wikipedia

      多重ディスパッチがあると、クラスがあって、そこにメソッドが属しているという考え方はあまり意味を持たない。collide-with という名前のメソッドは、引数ごとにそれぞれ 2 つのクラスと関連付けられている「普通の関数呼び出し」に過ぎなくなる。結果として、メソッドを呼び出す際の特殊な構文を必要としない。

    • class - julia: OOP or not - Stack Overflow
    • 疑似 OOP

note の継続課金マガジンの読者が 5 人になりました

  • CtoC と言われる、個人向けの販売やっていきたい
  • データ分析の鬼、けいすけさんから私の twitter の分析を 100 円で買いました。

1年半にわたり毎週開催していた勉強会の最終回と打ち上げをやりました

  • 次は Kaggle の勉強会を開催していきたい。

今週の1週間

今日の一句

  • 川沿いをただ彷徨ふや草の花 恋言