haskell - 获取/返回函数的类型
问题描述
有没有办法在 Haskell 中获取和返回函数的类型?
假设我有这种功能:
foo :: Int -> Int -> String
foo a b = (show a ++ show b ++ "hello")
从上面的代码中,我真正想要的是获取这种元组作为函数的返回值:
> getTypeTuple foo
(Int, Int, String)
据我所知,类型本身不能被视为表达式的一部分,所以我想在 Haskell 的运行时不可能有这种特性。(静态型!!)
那么 Haskell 中会有任何类似的替代方案或预处理器功能吗?
编辑:我认为我真正想要的是:t
GHCi 中命令的 Haskell 实现。
解决方案
您可以使用 Template Haskell 进行元编程,这样您就可以获取函数的类型。有关如何获取类型的信息,请参阅此问题。
推荐阅读
- arrays - 使用 tableview 和 CoreDataStack 和 Diffable 数据源删除核心数据中的记录
- c# - 如何将其他列表绑定到其他 ItemsSource 中的 ItemsSource
- powershell - PowerShell ErrorRecord.CategoryInfo.Activity (CategoryActivity)
- html - 如何在新行中换行
- python - 如何在 pandas 数据框中的某个范围内对每第 n 行进行采样?
- python - 使用 Erlang C 求解调用次数
- python - 在 Python3 中使用大型机数据集
- automation - 单击多个窗口 - Hammerspoon 中的 AutoHotKey 等效项
- python - 具有插件层次结构的跨模块的 Python 日志记录
- sql - 更新一行以实现错误捕获