マルチディスパッチ

Julia中級

Anthony Markham

Quantitative Developer

マルチディスパッチの要点

  • マルチディスパッチは、関数に渡す引数の型に応じて異なるメソッドを実行します。
function add_values(x, y)
    x + y
end
add_values(1, 2)  # 3
add_values("A", "B")
ERROR: MethodError: no method matching +(::String, ::String)
function add_values(x::String, y::String)
    x * y
end

add_values("A", "B")  # AB
Julia中級

無名関数

  • 無名関数は、通常の関数と異なり名前がありません。
  • 使い捨ての簡易関数を素早く作るのに使います。
(x -> x^2 + 3)(2)
7
Julia中級

複雑な無名関数

  • 無名関数は、単純な評価以外にも使えます。

  • map() はコレクションの各値に関数を適用します。

map(x -> 2*x + x^2 + 1, [1, 2, 3])
3-element Vector{Int64}:
4 9 16
map((x, y) -> 2*x + x^2 + 1 + y, [1, 2, 3], [1, 1, 1])
3-element Vector{Int64}:
5 10 17
Julia中級

DataFrame のフィルタリング

  • filter 関数は、条件でデータ構造を絞り込めます。

  • filter に無名関数を渡して、特定の値で抽出できます。

filter!("Date" => n -> n == "21/01/2022", stock_data)
 Row | Date        Open     High     Low      Close     Adj Close  Volume
     | String15    Float64  Float64  Float64  Float64?  Float64    Int64
<----|-----------------------------------------------------------------------
   1 | 21/01/2022   164.42   166.33    162.3    162.41    161.473  122848900
Julia中級

Let's practice!

Julia中級

Preparing Video For Download...