How to print in REPL the code of functions in Julia?

后端 未结 4 893
清歌不尽
清歌不尽 2021-01-14 12:09

In Julia, a lot of the Base and closer related functions are also written in pure Julia, and the code is easily avaible. One can skim through the repository or the local dow

相关标签:
4条回答
  • 2021-01-14 12:28

    Though this may not be what the OP is looking for, @less is very convenient to read the underlying code (so I very often use it). For example,

    julia> @less 1 + 2
    

    gives

    +(x::Int, y::Int) = box(Int,add_int(unbox(Int,x),unbox(Int,y)))
    

    which corresponds to the line given by

    julia> @which 1 + 2
    +(x::Int64, y::Int64) at int.jl:8
    
    0 讨论(0)
  • 2021-01-14 12:32

    This is not currently supported but probably will be in the future.

    0 讨论(0)
  • 2021-01-14 12:35

    @edit functioninquestion() will open up your editor to the location of the method given. It probably wouldn't be to hard to take the same information used by @edit and use it to open the file and skip to the method definition, and then display it directly in the REPL (or Jupyter). EDIT: While I was answering, somebody else mentioned @less, which seems to do exactly what you want already.

    0 讨论(0)
  • 2021-01-14 12:39

    There is now another tool for this, https://github.com/timholy/CodeTracking.jl. It is part of Revise.jl (and works better when also using Revise). It should work inside Jupyter and with functions defined in the REPL, unlike @edit/@less.

    0 讨论(0)
提交回复
热议问题