8.2 関数定義

関数定義のやり方には色々ある。
julia> myadd(x,y)=x+y
myadd (generic function with 1 method)

julia> myadd(1,2)
3

julia> function myadd(x,y)
         return x+y
       end
myadd (generic function with 1 method)

julia> function myadd(x,y)
         x+y # 最後に評価した式を return する
       end
myadd (generic function with 1 method)

julia> include("myadd.jl")
myadd (generic function with 1 method)
ただし
myadd.jl
function myadd(x,y)
  x+y
end

ラムダ式 (こんなのを言語仕様に含めるのは Lisp 屋だ)
julia> (x->x+1)(1)
2

julia> ((x,y)->x+y)(1,2)
3

julia> bisection(x->x-cos(x), 0, 1, 1e-16, 100)
0.7390851332151607 は解, f(c)=0,0, 反復回数= 52
(詳しいことは省略するけど、 bisection(f,a,b,eps,iter) は関数 $ f$ に対して、方程式 $ f(x)=0$ を解く自作の関数である。)

同名の関数を定義できる。
function myadd(x,y)
  x+y
end
function myadd(x,y,z)
  x+y+z
end

オプション引数が使える。
function myadd(x,y,z=0)
  x+y+z
end



桂田 祐史