61

私はGHC6でHaskell2010.1.0.0.1を使用しています。GHCi:tプロンプトに続けて関数の名前を入力すると、関数のタイプが表示されます。関数定義も表示する方法はありますか?

4

3 に答える 3

45

現在はありません。

必要なものに最も近いコマンドは:info

:infoname..。

指定された名前に関する情報を表示します。たとえば、nameがクラスの場合、クラスメソッドとそのタイプが出力されます。nameが型コンストラクターの場合、その定義が出力されます。nameが関数の場合、そのタイプが出力されます。名前がソースファイルからロードされている場合、GHCiはソース内のその定義の場所も表示します。

タイプとクラスについては、GHCiはそれらに言及しているインスタンスも要約します。無関係な情報が表示されないようにするために、インスタンスは、(a)ヘッドが名前に言及している場合、および(b)インスタンスで言及されている他のすべてのものが:loadまたは:の結果としてスコープ内にある(修飾されているかどうかに関係なく)場合にのみ表示されます。モジュールコマンド。

そのようです:

Prelude> :info ($)
($) :: (a -> b) -> a -> b   -- Defined in GHC.Base
infixr 0 $

ただし、Hackageで、haddockツールによって生成された識別子のソースを参照できます。

  1. Hackageでモジュールを検索します
  2. ソースリンクをクリックします

「?src」、ラムダボットの#haskell IRCチャネルの有効なコマンドであり、期待どおりの動作をすることに注意してください。

> ?src ($)
> f $ x = f x
于 2011-04-26T05:46:51.970 に答える
8

いいえ、それはできません。Haskellの初心者であるあなたができるいくつかの楽しいこと:

  • HTMLハドックドキュメントで、[ソース]をクリックします...ソースを調べます。
  • :browse モジュールによってエクスポートされたすべての定義を検索するには
  • :help明らかな結果のために使用
  • hoogleのWebインターフェイスを使用して関数を検索するか、hoogleをローカルにインストールしてください。
  • 利益!
于 2011-04-26T05:46:50.543 に答える
7

私はそうは思わない。:iもう少し多くの情報(中置演算子やデータ構築などに役立ちます)に使用できますが、定義には使用できません。

ghci> :i repeat
repeat :: a -> [a]       -- Defined in GHC.List

hoogleを使用すると、標準ライブラリ関数のドキュメントをすばやく見つけることができます。この関数の右側には、ソースに移動するためのリンクがあります。それでも数回クリックするだけです。

于 2011-04-26T05:45:30.997 に答える