要看到在Haskell GHCI函數的簽名,我有:t
前綴是:如何設置Haskell的GHCI以互動方式將函數評估爲其簽名(類型)而不是獲取錯誤?
Prelude> f = \x -> x+1
Prelude> :t f
f :: Num a => a -> a
但輸入前綴每一次成長迅速歲。如果我離開它,我得到錯誤:
Prelude> f
<interactive>:5:1: error:
• No instance for (Show (a0 -> a0)) arising from a use of ‘print’
(maybe you haven't applied a function to enough arguments?)
• In the first argument of ‘print’, namely ‘it’
In a stmt of an interactive GHCi command: print it
而不是收到此錯誤信息,我想看到一個類似於我:t f
(甚至可能更多的信息,讓我的功能f
一些有用的信息有關f
)。
如何設置GHCI以實現此功能,即獲取功能的信息,無需輸入:t
?
非答案:':i'命令顯示有關超出其類型的值的一些額外信息;它也適用於類(但是,它是一個像':t'一樣的前綴命令)。此外,':set + t'將使GHCi打印在命令提示符下成功評估的任何類型的任何東西(但是,它不利於您談論的無實例顯示的情況)。 – duplode
我認爲你應該以不壓低GHCi的方式來重述這個問題。你想要的東西似乎相當合理;如果你問得好,人們可能會對幫助更感興趣。 – dfeuer
那麼錯誤信息應該告訴你repl是如何工作的。我不認爲你想要什麼是可能的。不過這可能是個好主意。或者這可能是一個任意的特殊情況,會讓人們感到困惑。 – jberryman