He leído algunas de las publicaciones aquí sobre cierres y currículos, pero siento que no he encontrado la respuesta. Entonces, ¿cuáles son las diferencias y, posiblemente, las similitudes de cierres y currying? Gracias por la ayuda :)¿Cuáles son las diferencias y las posibles similitudes de cierres y currying?
Respuesta
Currying es realmente un concepto matemático en primer lugar. Es simplemente la observación de que para cualquier n función ary f: S × ... S n → R, se puede definir una nueva función fprime (acaba de encontrar un error de reducción del precio!) Con n-1 parámetros donde ese primer parámetro se reemplaza por una constante. Por lo tanto, si usted tiene una función add(a,b)
, se puede definir una nueva función add1(b)
como
add1(b) ::= add(1, b)
... leer ":: =" como "se define como".
A cierre es más un concepto de programación. (Por supuesto, todo en la programación también es un concepto matemático, pero los cierres se volvieron interesantes debido a la programación.) Cuando construyes un cierre, unes una o más variables; estás creando un trozo de código que tiene algunas variables asociadas.
La relación es que se puede utilizar un cierre con el fin de poner en práctica currying: usted podría construir su función add1
anteriormente al hacer un cierre en el que el primer parámetro está obligado a 1.
- 1. ¿Cuáles son las diferencias y similitudes entre MVC y MVVM?
- 2. ¿Cuáles son las similitudes y diferencias entre las anotaciones Java y los atributos C#?
- 3. ¿Cuáles son las diferencias y similitudes de los sistemas de tipo Scala y Haskell?
- 4. ¿Cuáles son las similitudes y diferencias esenciales entre Scala y Gosu (relacionadas con Java)?
- 5. ¿Cuáles son las similitudes y diferencias entre las características de tipeo en Typed Racket y las características tipográficas en Clojure?
- 6. ¿Cuáles son las diferencias entre $ {} y # {}?
- 7. ¿Cuáles son las ventajas prácticas del currying?
- 8. ¿Cuáles son las diferencias entre PEG y CFG?
- 9. ¿Cuáles son las diferencias de uso entre size_t y off_t?
- 10. ¿Cuáles son las diferencias entre AssemblyVersion, AssemblyFileVersion y AssemblyInformationalVersion?
- 11. ¿Cuáles son las diferencias entre la lechuga y la pictografía?
- 12. ¿Cuáles son las diferencias entre JSP, PHP, HTML5 y javascript?
- 13. ¿Cuáles son las diferencias entre @dynamic y @synthesize?
- 14. ¿Cuáles son las diferencias reales entre Zend Framework y Django?
- 15. ¿Cuáles son las diferencias entre ADOdb y PDO en PHP?
- 16. ¿Cuáles son las diferencias entre osql, isql y sqlcmd?
- 17. ¿Cuáles son las diferencias entre struct_time y datetime?
- 18. ¿Cuáles son las diferencias actuales entre jQuery y Prototype?
- 19. ¿Cuáles son las diferencias b/w Hashtable, Dictionary y KeyValuePair?
- 20. ¿Cuáles son las diferencias entre OllyDbg y WinDbg?
- 21. ¿Cuáles son las diferencias fundamentales entre OSGi y Java EE?
- 22. ¿Cuáles son las diferencias entre Doctrine1 y Doctrine2?
- 23. ¿Cuáles son las diferencias entre XmlSerializer y BinaryFormatter?
- 24. ¿Cuáles son las diferencias entre NSURLConnection y ASI-HTTP-Request?
- 25. ¿Cuáles son las principales diferencias entre Meteor, Ember.js y Backbone.js?
- 26. ¿Cuáles son las diferencias entre Vanilla Perl y Strawberry Perl?
- 27. ¿Cuáles son las diferencias entre JSP y Facelets?
- 28. ¿Cuáles son las diferencias entre un UIView y un CALayer?
- 29. ¿Cuáles son las diferencias entre PHP y Java?
- 30. ¿Cuáles son las diferencias entre utf8_general_ci y utf8_unicode_ci?
Lo que usted ha descrito es la evaluación parcial en lugar de currying. Relacionado, pero no exactamente lo mismo. –