5 votes

Julia : Passer des arguments de mots-clés à une fonction par la fonction map()

J'essaie d'utiliser map() pour appliquer la fonction quandl sur un tableau de (n x 1) chaînes de caractères. ( http://quandljl.readthedocs.io/en/latest/get_data.html )

Cependant, je souhaite transmettre plus que les chaînes de caractères en tant qu'arguments à la fonction, comme par exemple from = Date1 y to = Date2 . Je n'arrive pas à trouver un moyen d'avoir map() appliquer la fonction sur le tableau de chaînes de caractères tout en passant également les arguments de mots clés pour télécharger les données à partir de Date1 a Date2 .

La question plus générale est la suivante : comment puis-je utiliser map() d'appliquer une fonction sur plusieurs éléments tout en passant des arguments supplémentaires à cette fonction ?

13voto

StefanKarpinski Points 4873

Vous voulez créer une fonction anonyme qui appelle quandl avec les arguments appropriés et de le faire correspondre à vos données. Puisque je ne suis pas clair sur la façon dont vous voulez appeler quandl je vais juste utiliser un exemple inventé. Supposons que f prend deux arguments positionnels et un mot-clé k ; supposons que vous vouliez l'appliquer à chaque valeur de v con 2 comme deuxième argument et k = "abc" . Vous feriez cela comme suit :

map(x -> f(x, 2, k = "abc"), v)

Si le corps de la fonction anonyme est grand ou compliqué, vous pouvez utiliser l'outil Julia's syntaxe do-block et écrire le calcul comme ceci à la place :

map(v) do x
    f(x, 2, k = "abc")
end

Dans cet exemple, cela n'a pas beaucoup de sens, mais si la fonction anonyme représente plusieurs lignes de code, cela peut être préférable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X