首页 > 解决方案 > 如何修复“变量不在范围内”错误?

问题描述

你能帮我理解错误以及如何解决它吗?

comp = \x -> f(g(h(x)))

错误是

“变量不在范围内:f :: t0 -> t2”

forf, gh,它们只是一些没有另外指定的函数。

标签: haskelllambdaghci

解决方案


我怀疑您正在尝试构建一个包含 3 个函数的函数,就像如何.组合 2 个函数一样。要做到这一点,你不能只是在正文中编造名字并期望 GHC 知道你所说的它们的意思。相反,您需要以某种方式将它们纳入范围,如下所示:comp f g h = \x -> f(g(h(x)))


推荐阅读