gpt4 book ai didi

haskell - 制作在自身上运行其输入的函数时出现无限类型错误

转载 作者:行者123 更新时间:2023-12-05 08:19:35 24 4
gpt4 key购买 nike

我想弄清楚为什么这段代码没有按预期工作。

我想创建一个函数run,它将某个函数作为输入并返回应用于自身的函数。

run::(t1->t2)->t2
run a = a a

包含的类型应该是通用的,因为我希望它适用于任何东西,但是当我尝试时我遇到了无限的类型错误,我不确定为什么。

最佳答案

你说 a::t1 -> t2。这意味着它的参数应该有 t1 类型。然后你将它应用到自身,a a。这意味着它的参数是 a

所以现在我们有一个等式:参数应该同时具有类型 t1(因为它是 a 的参数)和类型 t1 -> t2(因为它是a):

t1 ~ t1 -> t2
~ (t1 -> t2) -> t2
~ ((t1 -> t2) -> t2) -> t2
~ (((t1 -> t2) -> t2) -> t2) -> t2
~ ...

每一行都是通过将 t1 替换为它等于 t1 -> t2 的内容来继承上一行。没有有限类型满足给定的等式。

关于haskell - 制作在自身上运行其输入的函数时出现无限类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69968547/

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