23

ターミナルまたはghciからHaskellドキュメントを入手することは可能ですか?

Rubyでは通常

ri thefunc

Perlでは通常

perldoc -f thefunc

helpまたは、Pythonでインタラクティブにすることもできます。

Haskellでこの種のことを行う方法は?たとえば、ターミナルに関する、[]または:ターミナルでドキュメントを取得したい場合はどうすればよいですか?


アップデート

私はこの関連するスレッド:iを見つけましたが、答えが:-/なのか、それともそうなのかわかりません。

*Main> :i []
data [] a = [] | a : [a]    -- Defined in GHC.Types
instance (Eq a) => Eq [a] -- Defined in GHC.Base
instance Monad [] -- Defined in GHC.Base
instance Functor [] -- Defined in GHC.Base
instance (Ord a) => Ord [a] -- Defined in GHC.Base
instance (Read a) => Read [a] -- Defined in GHC.Read
instance (Show a) => Show [a] -- Defined in GHC.Show
4

4 に答える 4

12

あなたが欲しいものはHoogleと呼ばれています。名前またはタイプで関数を検索できるため、実際にはほとんどのコマンドラインドキュメントツールよりもかなりクールです。互換性はあるものの、指定したものとは正確に一致しないタイプを見つけるのに非常に優れています(たとえばa -> [a]、型の関数が必要な場合があることが(Monad m) => a -> m aわかります。検索した型は、型クラスが入力されたものと同じです)。

于 2011-07-06T04:33:41.823 に答える
5

この答えが言うように、ghciからドキュメントを取得する方法はありません。ただし、Haskellでは、型はJava(またはRubyやPythonなどの明らかに動的型付けされた言語)よりも多くの情報を提供します。それらは、関数がどのように機能するかについてのヒントであり、それらをどのように構成できるかを教えてくれます。

ghciでは、:browseすべてのトップレベル関数の型を表示したり、引数としてパッケージ名を使用したりすることができます:browse Control.Monad。これは、関数についてはすでに知っているが、その使用方法がわからない場合に非常に役立ちます(それ以外の場合は、他の人が提案するようにHoogleまたはHayooを使用します)。:t式の型を取得したり、型:iクラスに関する情報を取得したりするためにも使用できます。

編集-これは少し意見が分かれていることは知っていますが、パラメトリック型などの存在と、まともな「コア」関数により、少なくともJavaやCと比較して、ドキュメントを読まなくても少し簡単になります。 (おそらくPythonやRubyはそれほど多くありません)。

于 2011-07-06T06:09:03.303 に答える
4

HoogleとHayooを使用しています

于 2011-07-06T05:57:25.063 に答える
4

「GHCionAcid(GOA)」と呼ばれるGHCi拡張機能があります。

http://www.haskell.org/haskellwiki/GHC/GHCi#GHCi_on_Acid

正確riではありませんが、REPLのHoogleやその他の優れた機能を使用するのに便利な方法です。

于 2011-07-06T10:51:44.170 に答える