User avatar
Le Néandertal se sent las, las @HydrePrever@mathstodon.xyz
2y
So the ifelse(test, yes, no) function begins by a few tests on the arguments, and it turns out that there's a special use case where test has length 1 and yes and no are functions. For exampleifelse(TRUE, sin, cos) sends back sin.

Is it used somewhere? Would you consider it as a good programming style? So many questions.

3
1
0
0
User avatar
namori @namori@peculiar.florist
2y
@HydrePrever Franchement, j'utilise beaucoup ce genre de choses (je fais plus de R depuis longtemps mais des équivalents ailleurs), donc je vais pas critiquer. Par contre, sache que ça devient vite incompréhensible au milieu d'une formule. Je ne l'utiliserais que rarement ainsi, mais plutôt, autant que possible, en stockant le résultat dans une variable nommée pour comprendre ce que c'est à la relecture.
2
1
0
0
2

User avatar
Le Néandertal se sent las, las @HydrePrever@mathstodon.xyz
2y
@namori c'était une question réthorique, un truc du genre ifelse(deriv, cos, sin)(x) est évidemment une horreur à bannir.
1
0
0
0
User avatar
namori @namori@peculiar.florist
2y
@HydrePrever Pas nécessairement, si c'est clair. L'essentiel c'est qu'un autre (y compris le soi-même de 6 mois plus tard) comprenne sans réfléchir. Faut pas tomber dans l'Inquisition !
2
1
0
0
2
User avatar
Le Néandertal se sent las, las @HydrePrever@mathstodon.xyz
2y
@namori c'est parce que j'enseigne le R. Si tu savais ce que les étudiants arrivent à faire avec ifelse(), je pense que tu envisagerais de créer une milice destinée à contrôler son utilisation.
1
0
0
0
User avatar
namori @namori@peculiar.florist
2y
@HydrePrever Ton exemple me semble plus clair qu'avoir une fonction appelée fonctionDeriveeSiOptionActivee. Mais oui je vois bien la fonction moche qu'on ne comprend plus au milieu d'une formule à n'en pas finir…
2
1
0
0
2
User avatar
Le Néandertal se sent las, las @HydrePrever@mathstodon.xyz
2y
@namori en fait ce qui me dérange là dedans c'est la polysémie. Ifelse ça mange des vecteurs et ça recrache des vecteurs, 99,99% du temps. Que ifelse puisse aussi de temps en temps manger et recracher des fonctions, je trouve que ça nuit à la lisibilité. Une fonction avec un autre nom qui ferait ça, pas de problème.

Et pour en revenir aux étudiants, si ifelse s'appelait autrement ils arrêteraient peut-être de la confondre avec une structure de contrôle du flux 😭
1
0
0
0
1