Julia言語の基本構文
Contents
Julia言語の基本構文#
for loop#
x = 1
for i in 1:10
x += 1
end
println(x)
11
関数名の!記号#
単なる慣習として関数への入力を変更する場合に!を付ける.
関数内で配列を変更する場合には注意が必要である.以下に入力された配列を同じサイズの要素1の配列で置き換える,ということを目的として書かれた2つの関数がある.違いはv
の後に[:]
としているかどうかである.
function wrong!(a::Array)
a = ones(size(a))
end
function right!(a::Array)
a[:] = ones(size(a))
end
right! (generic function with 1 method)
実行するとwrong!
の場合には入力された配列が変更されていないことがわかる.
using Random
v = rand(2, 2)
println("v : ", v)
wrong!(v)
println("wrong : ", v)
right!(v)
println("right : ", v)
v :
[0.8385176458994452 0.33948083102842863; 0.23994246189788015 0.6555135942663283]
wrong : [0.8385176458994452 0.33948083102842863; 0.23994246189788015 0.6555135942663283]
right : [1.0 1.0; 1.0 1.0]
broadcastingの回避#
foo(a,b) = sum(a) + b
foo (generic function with 1 method)
println(foo.(Ref([1,2]),[3,4,5]))
println(foo.(([1,2],), [3,4,5]))
println(foo.([[1,2]], [3,4,5]))
[6, 7, 8]
[6, 7, 8]
[6, 7, 8]