We usually talk about calling "functions" rather than "files." If you're coming
from a Matlab background, one thing to note about julia is that you can put
multiple functions in one file:
square_and_mult_by_c(x, c) = c*x*x
smc(X::AbstractVector, c) = [square_and_mult_by_c(x, c) for x in X]
Note the second function calls the first, but you can put both of these in the
same disk file. Once loaded, you can also call either of these functions from
the command line.
Functions can have more than one argument, so you can pass both `x` and `c`
from one function to another. You might also be interested in the manual
sections on default and keyword arguments.
Best,
--Tim
On Thursday, March 24, 2016 09:29:16 AM new to Julia wrote:
> Got it. Thank you so much. I am wondering that what about variable? I may
> need to define it in the function, right? How to make it be called by other
> files?
>
> On Thursday, March 24, 2016 at 1:30:26 AM UTC-5, Uwe Fechner wrote:
> > If c is a constant, that you want to define in the file test.jl, than you
> > can define it e.g. at the top of the file
> > OUTSIDE of the function like this:
> > const c=2
> >
> > On Thursday, March 24, 2016 at 5:42:24 AM UTC+1, new to Julia wrote:
> >> Thank you so much for your reply. I am still not very clear about what to
> >> do. Could you explain to me again?
> >> On Wednesday, March 23, 2016 at 2:48:40 PM UTC-5, Christopher Alexander
> >>
> >> wrote:
> >>> No, you can call files using "include", but you are only going to
> >>> import essentially the functions, types, and global variables defined in
> >>> those files (you should not include a file inside of a function). You
> >>> do
> >>> see though how your variable "c" in "test" would not be accessible
> >>> anywhere
> >>> else, right?
> >>>
> >>> Chris
> >>>
> >>> On Wednesday, March 23, 2016 at 3:39:10 PM UTC-4, new to Julia wrote:
> >>>> Thanks for your reply. Does it mean that calling files in Julia is
> >>>> impossible?
> >>>>
> >>>> On Wednesday, March 23, 2016 at 1:57:16 PM UTC-5, Christopher Alexander
> >>>>
> >>>> wrote:
> >>>>> How is test2 supposed to know what "c" is? It is only defined inside
> >>>>> the scope of the function "test", so it won't be accessible anywhere
> >>>>> else.
> >>>>>
> >>>>> Chris
> >>>>>
> >>>>> On Wednesday, March 23, 2016 at 2:41:29 PM UTC-4, new to Julia wrote:
> >>>>>> I have a question for calling files in Julia:
> >>>>>>
> >>>>>> I have two jl files. And I can call one file from the other file.
> >>>>>> However, the variable or constant defined in that file cannot be used
> >>>>>> in
> >>>>>> the other file. I am wondering that how to fix this? The following is
> >>>>>> a
> >>>>>> simple example.
> >>>>>>
> >>>>>> function test(x)
> >>>>>>
> >>>>>> c=2;
> >>>>>> y1=6*x;
> >>>>>> y2=x/5;
> >>>>>> y1,y2
> >>>>>>
> >>>>>> end
> >>>>>> pwd()
> >>>>>>
> >>>>>>
> >>>>>> ## test and test2 are used for calling functions in Julia
> >>>>>> function test2(x)
> >>>>>>
> >>>>>> include("test.jl")
> >>>>>> yold,ynew=test(x/c);
> >>>>>> y3=yold+10;
> >>>>>> y4=ynew-10;
> >>>>>> yold2,ynew2=test(x)
> >>>>>> y5=yold2+20;
> >>>>>> y6=ynew2-20;
> >>>>>> y3,y4,y5,y6
> >>>>>>
> >>>>>> end
> >>>>>> y3,y4,y5,y6=test2(100)
> >>>>>>
> >>>>>>
> >>>>>> However, when I run this test2, there is a error comes out: saying
> >>>>>> that c is not defined.
> >>>>>>
> >>>>>> Thank you very much.