जूलिया आरईपीएल को उपयोगकर्ता परिभाषित फ़ंक्शन विवरण ("डोकस्ट्रिंग्स") कैसे उपलब्ध कराया जाए?


91

fREPL का उपयोग कर ?fया के माध्यम से निरीक्षण किए जाने पर उपयोगकर्ता परिभाषित फ़ंक्शन (कहते हैं ) में कैसे सार्थक प्रिंटआउट हैंhelp(f)

उदाहरण के लिए कल्पना कीजिए कि मैं निम्नलिखित कवक लिखते हैं

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

अगर मैं इसे जूलिया सत्र में लोड करता हूं और कोशिश करता help(f)हूं कि मुझे निम्नलिखित मिलें :

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

क्या हुआ अगर इसके बजाय मैं कुछ देखना चाहता था

julia> help(f)
f

   Compute 2 times x minus y squared

जहाँ वर्णन "कंप्यूट 2 बार x माइनस y चुकता" कहीं लिखा है। मैं अनुमान लगा रहा हूं कि मेरे प्रश्न का उत्तर प्रश्न के उत्तर से निर्धारित किया जा सकता है "कहीं पर वर्णन लिखा जाना चाहिए?"


उदाहरण के अनुसार, अगर मैं अजगर में भी ऐसा ही करना चाहता था, तो मैं फ़ंक्शन को परिभाषित कर सकता हूं और विवरण को डॉकिंग के रूप में रख सकता हूं:

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

जब मैं टाइप करता हूं help(f)या f?आईपीथॉन से तुरंत अपना विवरण उपलब्ध करवाता हूं ।


11
मुझे नहीं लगता कि आप अभी तक ऐसा कर सकते हैं। उदाहरण के लिए देखें: github.com/JuliaLang/julia/issues/3988
ivarne

2
यह जल्द ही होगा। चर्चा यहाँ
spencerlyon2

जवाबों:


56

आप @docजूलिया संस्करण 0.4 (अक्टूबर 2015) और इसके बाद के संस्करण में मैक्रो का उपयोग कर सकते हैं ।

% 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.

संपादित करें: जैसा कि @Hisonison ग्रोडिन ने बताया है, संस्करण 0.5 और इसके बाद के संस्करण एक संक्षिप्त वाक्यविन्यास के साथ-साथ मार्कडाउन, 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

जूलिया में v0.5 + ( 1.2+ जैसे अधिक जूलिया संस्करण सहित ), आप फ़ंक्शन परिभाषा के ऊपर एक बहुस्तरीय स्ट्रिंग लिख सकते हैं। ( @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

अपने दस्तावेज़ों को ठीक से फ़ॉर्मेट करने के बारे में अधिक जानकारी के लिए, आधिकारिक जूलिया प्रलेखन देखें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.