Pourquoi est-ce que je ne peux pas utiliser les paramètres optionnels dans les fonctions lâches définies avec "let"? Pourquoi ne sont-ils autorisés que dans les fonctions membres? Pourquoi?F #: Pourquoi est-ce que je ne peux pas utiliser les paramètres optionnels dans les fonctions lâches?
13
A
Répondre
19
Je suppose qu'ils sont fournis uniquement pour la compatibilité avec les fonctions .NET. Ils ne sont pas quelque chose que vous rencontrez dans les langues fonctionnelles. Le problème avec un paramètre optionnel est que vous ne pouvez pas l'utiliser. Si le deuxième paramètre d'une fonction f est facultatif, qu'est-ce que
let g = f x
?
Est-ce une fonction prenant un argument, ou une valeur obtenue en évaluant f sur x plus le second paramètre par défaut?
2
Il est autorisé dans OCaml. Par conséquent, il devrait être possible de l'implémenter en F #.
http://caml.inria.fr/pub/docs/manual-ocaml/lablexamples.html#sec43
je suppose qu'il a été omis par souci de simplicité dans F #.
Questions connexes
- 1. Comment gérer les paramètres optionnels dans Moose?
- 2. Pourquoi je ne peux pas utiliser mon serveur apache?
- 3. en utilisant la méthode Reflector.Invoke sur les fonctions avec les paramètres optionnels
- 4. Android: Pourquoi ne pas utiliser les activités dans les onglets?
- 5. Paramètres optionnels
- 6. Pourquoi est-ce que je ne peux pas mettre une constante dans un CGRectMake?
- 7. Javascript Fonctions et arguments optionnels
- 8. Pourquoi je ne peux pas lancer une boucle en Javascript?
- 9. Service Web 2005 que je ne peux pas utiliser dans l'application 3.5
- 10. Comportement de la Viewbox que je ne peux pas comprendre
- 11. Après les grails nettoyer je ne peux pas courir-app
- 12. Pourquoi ne puis-je pas obtenir les paramètres pour travailler avec apply-templates dans XSL?
- 13. Python paramètres optionnels
- 14. Si les opérateurs Ascii sont définissables, pourquoi ne pas utiliser les symboles Unicode?
- 15. Je ne peux pas utiliser sitemap lorsque j'utilise UrlMapping
- 16. Pourquoi cela ne compilera pas en F #
- 17. Pourquoi est-ce que je ne peux pas piéger un clic de souris dans IE?
- 18. Pourquoi est-ce que je ne peux pas centrer un <td> dans IE7?
- 19. rendement: pourquoi je ne peux pas écrire: p test_method {} i.upcase
- 20. Quelqu'un sait pourquoi je ne peux pas utiliser kAudioFormatFlagIsFloat au lieu de kAudioFormatFlagIsSignedInteger pour une AudioStreamBasicDescription?
- 21. Python os.forkpty pourquoi je ne peux pas le faire fonctionner
- 22. Pourquoi ne puis-je pas utiliser une instance SqlConnection tant que SqlDataReader n'est pas fermé?
- 23. JavaScript: paramètres pour les fonctions non nommées
- 24. Pourquoi les arguments optionnels typés ne peuvent-ils pas avoir la valeur par défaut Null?
- 25. Pourquoi ne puis-je pas modifier mes paramètres régionaux?
- 26. .NET Pourquoi est-ce que je ne peux pas remplacer mes mailSettings web.config?
- 27. Pourquoi les propriétés ne sont pas déclarables dans les interfaces
- 28. C# - Je sais que je peux le faire dans LINQ, mais je ne peux pas le faire fonctionner
- 29. Pourquoi est-ce que je ne peux pas connecter à un champ?
- 30. Pourquoi est-ce que je ne peux pas String.Replace() sur une chaîne IO.File.ReadAllText()?