a ->-6ren">
gpt4 book ai didi

haskell - 打印类型签名列表

转载 作者:行者123 更新时间:2023-12-04 16:39:42 24 4
gpt4 key购买 nike

我希望能够在 ghci 中输入以下内容:

map showTypeSignature [(+),(-),show]

我希望 ghci 返回以下字符串列表:
["(+) :: Num a => a -> a -> a","(-) :: Num a => a -> a -> a","show :: Show a => a -> String"]

自然,我遇到的第一个问题是我无法构造第一个列表,因为函数的类型签名不匹配。我能做些什么来构建这样一个列表? ghci如何完成类型签名的打印? ghci 命令 :t 定义在哪里(它的来源)?

最佳答案

你所要求的实际上是不可能的。您无法从 Haskell 中轻松确定 Haskell 术语的类型签名。在运行时,几乎没有可用的类型信息。 GHCi 命令 :t是一个 GHCi 命令,而不是解释的 Haskell 函数,这是有原因的。

要做一些接近你想要的事情,你必须使用 GHC 本身,作为一个库。 GHC 为此提供了 GHC API。但是你将不能使用任意的 Haskell 术语,而必须以 String 开头。代表您的条款。此外,在运行时调用编译器必然会产生 IO输出。

关于haskell - 打印类型签名列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22344158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com