3

プロジェクトまたは cabal の依存関係で定義されている関数/クラスなどのghci ( Acid 上の lambdabot 2.5 GHCi を使用)でソース定義を表示するにはどうすればよいですか? たとえば、私が持っているとします:

module Main where
import System.Random

gen = (random (mkStdGen 0)) :: (Bool,StdGen)

myadd :: Int -> Int
myadd x = 2 * x

main = do
  print "finished"

その後、情報を取得できmyaddますrandomが、ソースを印刷できません。これがghciでできることです(ラムダボットを使用):

*Main GOA> :src foldr
 foldr f z []     = z
foldr f z (x:xs) = f x (foldr f z xs)
*Main GOA> :i myadd
myadd :: Int -> Int     -- Defined at test.hs:7:1
*Main GOA> :src myadd
 Source not found. I don't think I can be your friend on Facebook anymore.
*Main GOA> :i random
class Random a where
  ...
  random :: RandomGen g => g -> (a, g)
  ...
    -- Defined in ‘System.Random’
*Main GOA> :src random
 Source not found. Listen, broccoli brains, I don't have time to listen to this trash.

foldrlambdabotは、プロジェクトで定義されているmyadd関数 ( ) または cabal 依存関係 ( ) で定義されている関数の定義を出力できるようrandomです。

lambdabot のいくつかの機能を使用して、myaddや などの定義を出力することはできますか? randomHoogle を使用できることは知っていますが、randomghci または lambdabot を使用してソース定義を出力する方法があるかどうかを具体的に知りたいです。

[編集]

投稿してから、Emacs/Inferior Haskell プロセスを発見し、それらの機能のいくつかは上記のいくつかを達成しているようです。

4

1 に答える 1