推断包含Haskell表达式的字符串的类型
我需要一种(快速而肮脏的)方法来获取作为字符串给出的Haskell表达式类型的表示 我目前看到3种选择:推断包含Haskell表达式的字符串的类型,haskell,type-inference,ghc-api,hindley-milner,Haskell,Type Inference,Ghc Api,Hindley Milner,我需要一种(快速而肮脏的)方法来获取作为字符串给出的Haskell表达式类型的表示 我目前看到3种选择: 使用GHCAPI——然而,我很快就对文档失去了兴趣 使用其他类型推断工具——有人建议我尝试haskell类型的exts,但它除了最简单的表达式外,无法键入所有其他类型的表达式。我不知道还有其他这样的工具 滚动我自己的HM推断器——除非绝对必要,否则我会避免这样做 我甚至不需要一个完整的解决方案,从某种意义上说,一个可以键入Haskell的合理基本子集的库/工具就足够了 那么,实现这一点最
- 使用GHCAPI——然而,我很快就对文档失去了兴趣
- 使用其他类型推断工具——有人建议我尝试haskell类型的exts,但它除了最简单的表达式外,无法键入所有其他类型的表达式。我不知道还有其他这样的工具
- 滚动我自己的HM推断器——除非绝对必要,否则我会避免这样做
import Language.Haskell.Interpreter
main :: IO ()
main = do
r <- runInterpreter $ do
setImports ["Prelude"]
typeOf "map (+1)"
either print putStrLn r
看看——其中一些可能比GHC更容易使用。如果你自己去写,马克·P·琼斯可能是一个好的开始。
Num b => [b] -> [b]