>
> I guess, a function has one name and many defs(definition?). And Julia
> will do dispatch base on the "sig".


Correct. See the Functions and Methods sections of the manual. Beyond that,
for a nice overview of multiple dispatch (and some consequences), see:

http://nbviewer.ipython.org/gist/StefanKarpinski/b8fe9dbb36c1427b9f22

For some lower-level details, I would suggest to start with Jeff's talk
from JuliaCon:

https://www.youtube.com/watch?v=osdeT-tWjzk&list=PLP8iPy9hna6TSRouJfvobfxkZFYiPSvPd&index=10

(some other videos linked here: http://julialang.org/learning/)




On Mon, Nov 3, 2014 at 6:59 PM, <[email protected]> wrote:

> They seem have similar "code".
>
> eg:
>
>   function fun(x::Int)
>    x
>   end
>
>   function fun(x)
>   x
>   end
>
>   fun.env.defs.func.code
>
>   AST(:($(Expr(:lambda, {:x}, {{},{{:x,:Any,0}},{}}, :(begin
>         return
>         end)))))
>
>   func2 = (x) -> x
>   func2.code
>
>   AST(:($(Expr(:lambda, {:(x::Any)}, {{},{{:x,:Any,0}},{}}, :(begin  #
> none, line 1:
>         return x
>     end)))))
>
>  And function has sig(signature?)
>
>  fun.env.defs.sig
>  (Any,)
>
> I guess, a function has one name and many defs(definition?). And Julia
> will do dispatch base on the "sig".
>
> Is it right? Please correct me, if I made any mistakes. Please tell me
> more about Julia function!
>
> But how Julia do dispatch base on the "sig"? Where is the "function" code
> in Julia source code?
>
>

Reply via email to