首页 > 解决方案 > 获取/返回函数的类型

问题描述

有没有办法在 Haskell 中获取和返回函数的类型?

假设我有这种功能:

foo :: Int -> Int -> String
foo a b = (show a ++ show b ++ "hello")

从上面的代码中,我真正想要的是获取这种元组作为函数的返回值:

> getTypeTuple foo
(Int, Int, String)

据我所知,类型本身不能被视为表达式的一部分,所以我想在 Haskell 的运行时不可能有这种特性。(静态型!!)

那么 Haskell 中会有任何类似的替代方案或预处理器功能吗?

编辑:我认为我真正想要的是:tGHCi 中命令的 Haskell 实现。

标签: haskelltypes

解决方案


您可以使用 Template Haskell 进行元编程,这样您就可以获取函数的类型。有关如何获取类型的信息,请参阅此问题。


推荐阅读