如何使用类型提示来批注返回始终生成两个值的Iterable的函数:bool和str?提示Tuple[bool, str]是关闭的,只是它将返回值类型限制为元组,而不是生成器或其他类型的迭代器。因为我想注释一个函数foo(),该函数用于返回多个值,如下所示:通常,像foo()这样的函数会做类似return a, b (返回一个元组)的事情,但我希望类型提示
我怎样才能用Haskell写一个最好的类型签名,最好地封装这样的想法:一个函数必须传递一个任意长度的元组,其中包含所有元素X,以及一个包含所有元素Y的元组列表(相同长度)?我不介意传递的类型是“真正的”元组或者其他数据类型,只要我可以在编译时强制元组和元组列表具有相同的长度。
Tuple N X -> [Tuple N Y] -> Z
return type(data)(apply_foo(x) for x in data)我使用type(data)构造用户传入的相同的具体列表/元组子类。但是,此代码不适用于命名元组。我将不得不通过type(data)(*(foo(x) for x in data))构造命名元组。但是,我事先不知道确切的名称元组类(因为用户可以传入任何内容),所以我不能显式地检查类型。
有没有一种简洁的方法可以让我在支持命名元组的