Une phrase que j'ai remarquée récemment est le concept de style "sans point" ...
Il y avait d'abord cette question, et aussi celle-ci .
Ensuite, j'ai découvert ici qu'ils mentionnent «Un autre sujet qui mérite d'être discuté est l'aversion des auteurs pour le style sans point».
Qu'est-ce que le style «sans point»? Quelqu'un peut-il donner une explication concise? Cela a-t-il quelque chose à voir avec le curry "automatique"?
Pour avoir une idée de mon niveau - je me suis enseigné le Scheme et j'ai écrit un simple interpréteur de Scheme ... Je comprends ce qu'est le curry "implicite", mais je ne connais aucun Haskell ou ML.
functional-programming
coding-style
scheme
pointfree
Paul Hollingsworth
la source
la source
Réponses:
Regardez simplement l'article Wikipédia pour obtenir votre définition:
Exemple Haskell:
Conventionnel (vous spécifiez les arguments explicitement):
sum
Sans point ( n'a pas d'arguments explicites - c'est juste un pli+
commençant par 0):Ou encore plus simple: au lieu de
g(x) = f(x)
, vous pouvez simplement écrireg = f
.Alors oui: c'est étroitement lié au curry (ou à des opérations comme la composition de fonctions).
la source
sum (x:xs) ...
au lieu desum sum (x:xs) ...
?Le style sans point signifie que les arguments de la fonction définie ne sont pas explicitement mentionnés, que la fonction est définie par la composition de la fonction.
Si vous avez deux fonctions, comme
et si vous voulez combiner ces deux fonctions en une qui calcule
x*x+1
, vous pouvez le définir "point-plein" comme ceci:L'alternative sans point serait de ne pas parler de l'argument
x
:la source
Un exemple JavaScript:
Référence
la source
Le style sans point signifie que le code ne mentionne pas explicitement ses arguments, même s'ils existent et sont utilisés.
Cela fonctionne dans Haskell en raison du fonctionnement des fonctions.
Par exemple:
renvoie une fonction qui prend un argument, il n'y a donc aucune raison de taper explicitement l'argument sauf si vous le souhaitez.
la source
myShow = show
. Il y a plus à ce sujet sur le wiki HaskellVoici un exemple de TypeScript sans aucune autre bibliothèque:
Vous pouvez voir que le style sans point est plus "fluide" et plus facile à lire.
la source
this.moreThan(10)
n'est pas une fonction nommée, c'est une fonction curry ainsi qu'une fonction qui prendra implicitement (donc sans point) atransaction
comme entrée.