【问题标题】:`inferior-haskell-type` inside a `where` clause?`where`子句中的`inferior-haskell-type`?
【发布时间】:2012-03-23 20:00:39
【问题描述】:

haskell-mode 或其他替代包是否提供类似于 inferior-haskell-type inside where 子句的精彩内容?

例如,假设我有

foo = undefined where
    bar = complicated
    ...

如果能够将标记放置在bar 并检查其类型,那就太棒了。

【问题讨论】:

  • 我想为了让这样的事情起作用,Emacs 必须从 where 子句中获取所有内容并制作一个临时模块(导入原始模块),然后加载它。
  • IIRC 这可以通过结合 Emacs 的早期 Scion 版本实现。 (来自文档的引用:C-c C-t 显示了点的标识符类型。这仅在当前文件类型检查时有效,但它也适用于本地标识符。)
  • @hvr :有趣。谢谢。
  • jfyi,我刚刚用我的fork for GHC 7.0 尝试过,它或多或少仍然有效
  • @hvr:您应该将此添加为答案,这样问题就不会一直悬而未决。

标签: haskell emacs


【解决方案1】:

Scion 与 Emacs 结合可以实现这一点。

C-c C-t 显示该点的标识符类型。这仅适用于当前文件类型检查,但它也适用于本地标识符。对于多态函数,它将显示它们被实例化的类型,例如,

f x = x + (1::Int)

+ 上调用此命令将打印Int -> Int -> Int 而不是Num a => a -> a -> a

【讨论】:

    猜你喜欢
    • 2019-03-22
    • 1970-01-01
    • 2010-11-20
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    相关资源
    最近更新 更多