如何修复“变量不在范围内”错误?

问题描述

你能帮我理解这个错误以及如何修复它吗?

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

错误

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

对于 f,gh,它们只是一些没有另外指定的函数

解决方法

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