update programacion lenguaje language julialang examples downloads docs books julia-lang

julia lang - programacion - ¿Cómo poner a disposición de julia REPL descripciones de funciones definidas por el usuario("docstrings")?



julia lenguaje de programacion (2)

¿Cómo pueden las funciones definidas por el usuario (por ejemplo, f ) tener impresiones significativas cuando se inspeccionan a través de REPL usando ?f o help(f)

Por ejemplo, imagine que escribo la siguiente función

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

Si cargo esto en una sesión de julia y pruebo la help(f) obtengo lo siguiente:

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

¿Qué pasaría si en cambio yo quisiera ver algo como

julia> help(f) f Compute 2 times x minus y squared

donde la descripción "Calcular 2 veces x menos y al cuadrado" está escrita en alguna parte. Supongo que la respuesta a mi pregunta se puede determinar a partir de la respuesta a la pregunta "¿Dónde está el lugar donde debe escribirse la descripción?"

A modo de ejemplo, si quisiera hacer lo mismo en python, podría definir la función y poner la descripción como una docstring:

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

lo que haría que mi descripción esté disponible de inmediato cuando escribo help(f) o f? de IPython.


En Julia v0.5 +, puede escribir una cadena multilínea por encima de la definición de la función. (Ya no es necesario tener @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

Para obtener más información sobre cómo formatear correctamente sus documentos, consulte la documentación oficial de Julia .


Puede usar la macro @doc en las versiones de Julia 0.4 (octubre de 2015) y posteriores.

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

Editar: como señaló @Harrison Grodin, las versiones 0.5 y superiores admiten una sintaxis abreviada, así como Markdown, LaTEX y algunas otras ventajas:

""" 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

Hay más detalles en la documentación .