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]
end
ERROR: 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() して、 関数を呼び出す。