En un archivo necesito usar el operador preludio normal (++) y también deseo implementar mi propio comportamiento para (++). He usado import Prelude hiding (++)
en la parte superior de mi archivo, he definido mi propio operador (++) y ahora, más abajo, deseo referirme al preludio normal (++). ¿Cómo logro esto?Haskell Prelude hidden, UNDO?
5
A
Respuesta
14
Escribir
import qualified Prelude
además de
import Prelude hiding ((++))
al principio del código, y escribir Prelude.++
donde se necesita ++
en Preludio.
4
Como explicó Tsuyoshi Ito, puede calificar al operador por su nombre de módulo. Sin embargo, dado que al definir su propia versión de (++)
lo más probable es que desee aumentar la legibilidad de su programa, calificar a un operador con su nombre de módulo más adelante parece ser una medida extraña.
Basta con mirar a esto: "abc" Prelude.++ "def"
ahora eso es feo.
¿Por qué no crear simplemente un nuevo operador, como <++>
o una función de infijo como `append`?
Cuestiones relacionadas
- 1. Photoshop Undo System
- 2. eliminar ColorFilter/undo setColorFilter
- 3. C++ -fvisibility = hidden -fvisibility-inlines-hidden
- 4. ¿hay una unión e intersección con la implementación de Haskell Prelude?
- 5. Intellij IDEA Can not Undo
- 6. Jquery Hidden Field
- 7. Hidden Markov Models
- 8. Haskell principiante
- 9. Haskell regex sintaxis
- 10. Tortoise SVN hidden _svn folders
- 11. Haskell: ¿Es un desastre?
- 12. función Haskell composición pregunta
- 13. bucle infinito en haskell? (novato)
- 14. interpolación de cadenas en Haskell
- 15. Haskell enumera la diferencia
- 16. Haskell: Convertir Int a cadena
- 17. Personalice la lista de paquetes que emacs-prelude proporciona
- 18. ¿Cómo funcionan las excepciones en Haskell?
- 19. haskell - función de hiperoperación (ackermann), tetration
- 20. Permita etiqueta específica para anular overflow: hidden
- 21. mingw -fvisibility = hidden no parece funcionar
- 22. "overflow-x: hidden" ¿solo por un lado?
- 23. IE 8 overflow: hidden y max-width
- 24. MVC3 Force Validation of Hidden Fields
- 25. ¿Por qué "overflow: hidden" borra un flotador?
- 26. .NET - WindowStyle = hidden vs. CreateNoWindow = true?
- 27. Boolean con html helper Hidden and HiddenFor
- 28. override overflow: hidden with z-index
- 29. vim undo (eliminar) caracteres escritos por un imap!
- 30. Cómo deshabilitar iOS "Shake to Undo" en una aplicación web
Sí, en realidad mi primera reacción a la pregunta fue "No nombre su función' (++) '," aunque no la publiqué. Pero si el asker está escribiendo una biblioteca con su propio '++' que pretende reemplazar el '++' en Preludio, entonces el usuario de la biblioteca idealmente nunca tendrá que usar 'Preludio. ++'. En tal caso (raro), tiene sentido definir una función con el mismo nombre. De lo contrario, tiene poco sentido causar un choque de nombre con algo tan frecuente. –
Empiezo a irritarme cuando las personas leen más allá de la pregunta y responden con "no hacer eso", especialmente cuando la pregunta no proporciona suficiente información sobre su motivación. Deje que los exploradores exploren, déjelos intentar lo que creen que es correcto, permítales ver de primera mano qué tan feo sale cuando lo hacen. Pronto estarán en condiciones de escribir este comentario sobre * sus * respuestas. :-) – luqui