Julia の変数のスコープは、かなり複雑である。 疑問が生じたら、マニュアルを熟読するしかないようだ。 現時点で全然出来ていない。(こういう基本的な部分で、 習得に手間がかかるのは辛いところだ…)
ここでは、 自分が動くプログラムを書くために、 最低限知っていれば何とかなりそうなレベルを目指す (弱気)。
まずは基本的なところを説明する。 以下は、M. Hiro [5] の写し (ありがとうございます)。
mysum.jl |
function mysum(v) s=0 # s=zero(v[1]) とすべき? for i=1:length(v) s=s+v[i] end return s end |
julia> include("mysum.jl") mysum (generic function with 1 method) julia> mysum(1:10) 55 |
julia> v=1:10; julia> s=0; julia> for i=1:length(v) s=s+v[i] endERROR: UndefVarError: s not defined |
julia> v=1:10; julia> s=0; julia> for i=1:length(v) global s s=s+v[i] end julia> s 55 |
今のところ、次のような作業の仕方が良いと考えている。 julia[enter] で REPL を起動して、 何かまとまったことをするときは、 テキスト・エディターで関数を定義するプログラムを書き、 それを include() して、 関数を呼び出す。