J'utilise Haskell 2010.1.0.0.1 avec GHC 6. Typage :t
à l'invite de GHCi suivi du nom d'une fonction nous indique le type de la fonction. Existe-t-il un moyen d'afficher également la définition de la fonction ?
Réponses
Trop de publicités?Pas actuellement.
La commande la plus proche de ce que vous voulez est :info
:info nom ...
Affiche des informations sur le(s) nom(s) donné(s). Par exemple, si nom est une classe, alors les méthodes de la classe et leurs types seront imprimés ; si nom est un constructeur de type, alors sa définition sera imprimée ; si nom est une fonction, alors son type sera imprimé. Si nom a été chargé à partir d'un fichier source, alors GHCi affichera également l'emplacement de sa définition dans la source.
Pour les types et les classes, GHCi résume également les instances qui les mentionnent. Pour éviter de montrer des informations non pertinentes, une instance n'est montrée que si (a) sa tête mentionne le nom, et (b) toutes les autres choses mentionnées dans l'instance sont dans la portée (qualifiée ou non) suite à une commande :load ou :module.
comme ça :
Prelude> :info ($)
($) :: (a -> b) -> a -> b -- Defined in GHC.Base
infixr 0 $
Vous pouvez cependant voir la source des identifiants générés par l'outil haddock, sur Hackage.
Notez que "?src" es une commande valide dans lambdabot, sur le canal IRC #haskell, et fait ce que vous attendez.
> ?src ($)
> f $ x = f x
Je ne pense pas. Vous pouvez utiliser :i
pour un peu plus d'informations (plus utiles pour les opérateurs infixes et les constructions de données, etc.), mais pas la définition :
ghci> :i repeat
repeat :: a -> [a] -- Defined in GHC.List
Vous pouvez utiliser hoogle pour trouver rapidement la documentation d'une fonction de la bibliothèque standard, qui comporte à droite un lien pour aller à la source. Il faut cependant encore quelques clics pour y parvenir.
Non, je ne peux pas faire ça. Quelques trucs amusants que vous, le débutant en Haskell, pouvez faire :
- Sur les documents HTML haddock, cliquez sur "source"... étudiez la source.
-
:browse
pour trouver toutes les définitions exportées par un module - Utilice
:help
pour le résultat évident - utiliser l'interface web de hoogle pour rechercher des fonctions, ou installer hoogle localement !
- ?
- Profit !