Estoy usando Haskell 2010.1.0.0.1 con GHC 6. Al escribir :t
en el indicador GHCi seguido del nombre de una función, se muestra el tipo de función. ¿Hay alguna manera de ver la definición de la función también?¿Cómo puedo ver la definición de una función en Haskell/GHCi?
Respuesta
Actualmente no.
El comando más cercano a lo que desea es :info
: Nombre info ...
Muestra información sobre el nombre (s) dado. Por ejemplo, si name es una clase, se imprimirán los métodos de clase y sus tipos; si name es un constructor de tipo, su definición se imprimirá; si el nombre es una función, se imprimirá su tipo. Si el nombre ha sido cargado desde un archivo fuente, entonces GHCi también mostrará la ubicación de su definición en la fuente.
Para tipos y clases, GHCi también resume instancias que los mencionan. Para evitar mostrar información irrelevante, se muestra una instancia solo si (a) su nombre menciona nombre, y (b) todas las otras cosas mencionadas en la instancia están dentro del alcance (calificadas o no) como resultado de: load o: comandos de módulo.
así:
Prelude> :info ($)
($) :: (a -> b) -> a -> b -- Defined in GHC.Base
infixr 0 $
Puede, sin embargo, ver la fuente de identificadores generados por la herramienta de eglefino, en Hackage.
Tenga en cuenta que "? Src" es un comando válido en lambdabot, en el canal IRC#haskell, y hace lo que se espera.
> ?src ($)
> f $ x = f x
No lo creo. Puede utilizar :i
para un poco más de información (más útil para los operadores infijos y construcciones de datos, etc.), pero no la definición:
ghci> :i repeat
repeat :: a -> [a] -- Defined in GHC.List
puede utilizar hoogle para encontrar rápidamente la documentación para una función de biblioteca estándar , que a la derecha tiene un enlace para ir a la fuente. Todavía está a unos pocos clics de distancia.
No, no puedo hacer eso. Algunas cosas divertidas que usted, el principiante de Haskell, puede hacer:
- En los documentos de eglefino HTML, haga clic en "origen" ... estudie la fuente.
:browse
para encontrar todas las definiciones exportadas por un módulo:help
uso para el resultado obvio- utilizar la interfaz web de hoogle para buscar funciones, o instalar Hoogle zona!
- ?
- beneficio!
': browse' no le da las definiciones. Le da una lista de las funciones del módulo y sus tipos. – Tshimanga
¿Sería más feliz si dijera "todos los símbolos" o "definiciones de nivel superior"? Siéntase libre de editar. –
- 1. Ver definición de procedimiento/función almacenado en MySQL
- 2. ¿Cómo puedo visualizar la definición de una función en Clojure en REPL?
- 3. pure-specifier en la definición de función
- 4. ¿Cómo imprimir una definición de función en Bash?
- 5. ¿Puede bash mostrar la definición de una función?
- 6. Definición de la función dentro de otra definición de función: ¿es válida?
- 7. Una pregunta sobre la definición de función en C++
- 8. ¿Cómo ver la firma de la función en Python?
- 9. phpeclipse: saltar a la definición de función?
- 10. ¿Puede Python imprimir una definición de función?
- 11. Definición de una función con firma diferente
- 12. Definición de una función con múltiples argumentos implícitos en Scala
- 13. ¿Cómo ver el cuerpo de una función en node.js?
- 14. Ir a la definición de función en vim
- 15. miembro definición de función
- 16. cómo usar la constante de la clase como una definición de argumento en la función php?
- 17. Definición de función en una orden de archivo python independiente
- 18. ¿Puedo ver la cadena de documentación de una función en Python usando VIM?
- 19. ¿Cómo puedo requerir un atributo en una definición de clase?
- 20. Función definición C
- 21. GCC función fastcall definición
- 22. ¿Cómo puedo definir una función de plantilla dentro de una clase de plantilla fuera de la definición de clase?
- 23. Definición de punteros de función
- 24. Javascript Función Definición Sintaxis
- 25. ¿cómo se interpreta la definición de una función después de su uso en una llamada a función?
- 26. ¿Hay una manera rápida de ver (no saltar) la definición/tipo de un símbolo en Xcode?
- 27. ¿Debería una función virtual esencialmente tener una definición?
- 28. ¿Cómo puedo copiar una definición de compilación de TFS 2010?
- 29. Eclipse CDT (CCS) Goto Definición de una función
- 30. Definición de variables dentro de una función Haskell
Muchas gracias. Recientemente empecé a aprender Haskell y no sabía nada de lambdabot. Esto funciona perfectamente bien como alternativa. –
@franco hades: Creo que lambdabot también se puede instalar localmente, desde Hackage, por lo que no necesita estar en IRC para usarlo (a menos que lo desee, #haskell es un buen canal). –
Muy bueno, ¡también dice que puedes incrustar lambdabot en ghci! Las instrucciones no son muy claras, sin embargo. – stites