J'essaie d'utiliser le Paquet LsqFit en Julia, et la documentation fait usage d'une macro @.
sans vraiment expliquer comment ça marche. La documentation du paquet ne me permet pas de savoir s'il s'agit d'une macro standard de Julia ou d'un élément particulier au paquet, et je ne trouve pas de référence à cette macro ailleurs. Comment @.
travailler dans Julia ?
Réponse
Trop de publicités?Vous pouvez vérifier la documentation pour n'importe quelle fonction de Julia en appuyant sur ?
pour accéder au mode d'aide, voir le résultat ci-dessous :
help?> @.
@. expr
Convert every function call or operator in expr into a "dot call" (e.g. convert f(x) to f.(x)), and convert
every assignment in expr to a "dot assignment" (e.g. convert += to .+=).
If you want to avoid adding dots for selected function calls in expr, splice those function calls in with $.
For example, @. sqrt(abs($sort(x))) is equivalent to sqrt.(abs.(sort(x))) (no dot for sort).
En décrivant la documentation ci-dessus en d'autres termes, la @.
permet de vectoriser tous les appels de fonction dans l'expression qui suit une macro.
Si vous n'êtes pas sûr du fonctionnement d'une macro Julia, je vous recommande d'utiliser la fonction @macroexpand
macro, par exemple :
julia> @macroexpand @. [1, 2, 3] + [4, 5, 6]
:((+).([1, 2, 3], [4, 5, 6]))