ユーザー定義関数の説明(「docstrings」)をjulia REPLで利用できるようにする方法は?


91

またはfを使用してREPLを介して検査したときに、ユーザー定義関数(たとえば)が意味のあるプリントアウトを持つにはどうすればよいですか??fhelp(f)

たとえば、私が次の関数を書くと想像してください

function f(x::Float64, y::Float64)
    return 2x - y^2
end

これをjuliaセッションにロードして試してみるhelp(f)と、次のようになります。

julia> help(f)
f (generic function with 1 method)

代わりに私が次のようなものを見たいと思ったらどうしますか

julia> help(f)
f

   Compute 2 times x minus y squared

ここで、「xからyの2乗を2回計算する」という説明がどこかに書かれています。私の質問に対する答えは、「説明をどこに書くべきか」という質問に対する答えから判断できると思います。


例として、Pythonで同じことをしたい場合は、関数を定義し、説明をdocstringとして配置できます。

def f(x, y):
    """
    Compute 2 times x minus y squared
    """
    return 2 *  x - y ** 2

これにより、入力時help(f)またはf?IPythonからすぐに説明を利用できるようになります。


11
まだそれはできないと思います。例を参照してください:github.com/JuliaLang/julia/issues/3988
ivarne

2
これはまもなく起こります。ここでの
spencerlyon2 2014年

回答:


56

この@docマクロは、Juliaバージョン0.4(2015年10月)以降で使用できます。

% julia
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: http://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.4.0 (2015-10-08 06:20 UTC)
 _/ |\__'_|_|_|\__'_|  |  Official http://julialang.org/ release
|__/                   |  x86_64-apple-darwin13.4.0

julia> @doc """
       Compute 2 times x minus y squared.
       """ ->
       function f(x::Float64, y::Float64)
           return 2x - y^2
       end
f (generic function with 1 method)

julia> @doc f
  Compute 2 times x minus y squared.

編集: @Harrison Grodinが指摘しているように、バージョン0.5以降では、Markdown、LaTEX、およびその他のいくつかの機能に加えて、省略された構文がサポートされています。

"""
Calculate the left Riemann sum[^1] approximating ``\int_a^b f(x) dx = F(b) - F(a).``

[^1]: Thomas G., Finney R. (1996), Calculus and Analytic Geometry, Addison Wesley, ISBN 0-201-53174-7
"""
function rs(a, b, d, f)
end

詳細については、ドキュメントをご覧ください。


30

Julia v0.5 +(1.2+などの最新のJuliaバージョンを含む)では、関数定義の上に複数行の文字列を書き込むことができます。(もう必要あり@docません。)

julia> """
           cube(x)

       Compute the cube of `x`, ``x^3``.

       # Examples
       ```jldoctest
       julia> cube(2)
       8
       ```
       """
       function cube(x)
           x^3
       end
cube

help?> cube
search: Cdouble isexecutable Ac_mul_B Ac_mul_Bc Ac_mul_B! Ac_mul_Bc! cumsum_kbn

  cube(x)

  Compute the cube of x, x^3.

     Examples
    ≡≡≡≡≡≡≡≡≡≡

  julia> cube(2)
  8

docstringを適切にフォーマットする方法の詳細については、公式のJuliaドキュメントを参照してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.