Clojureを勉強している5

  • Javaとの互換性の話。
    • .だけでJavaメソッド呼び出せるのかすげえな。
    • new関数はわかりやすいんだけど、型の後ろに.付けてインスタンス生成するのはちょっと覚えにくいな。
    • ElixirもErlangのモジュール呼び出すの簡単になってるし、VM利用言語は気を使ってるなぁ
    • :importでライブラリのインポート。
    • /を挟んでスタティックメソッドの呼び出し。replのタブ補完が効くのが嬉しい。
    • インポートしなくてもFQDNでライブラリ使える。
    • dotoマクロでメソッドチェーンできる。が、この辺は元の書き方より厳しいものがあるな。
    • 頭に:のないimportでもインポートできるんじゃん。
  • ポリモーフィズム

    • condでクラスに応じて出力変えるサンプルコードが出てきてこれでポリモーフィズムって言う気?と思ったら、その後ちゃんとそれっぽいものが出てきた。
    • defmultidefmethodか。ふむ。
    • :default付けたらmethod_missingみたいな感じか。この例だとclass_missingか。
    • マルチメソッドの他にプロトコルってのもあるよーって。
    • defprotocolにはextend-protocolと。
    • defrecordで型が作れるのか。
    • .-プリフィクスでフィールドにアクセス。
    • おっと、deftypeが出てきた。見た目同じように見えるなぁ。
      • 構造化データを扱うときがdefrecordそうじゃないときがdeftypeとのこと。
  • Chapter 4 Java Interop and Polymorphism

Living Clojure

Living Clojure