“'节点'应用于太少的参数”,即使有确切的数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“'节点'应用于太少的参数”,即使有确切的数字相关的知识,希望对你有一定的参考价值。

sa是类型变量。在构造函数中,前两个参数是数据,然后是它的父项,它在图中的级别,然后是它的子项列表。

data Node s a = Root | Node s a (Node s a) Int [Node s a]
createRoot :: (ProblemState s a) => s-> a -> Node s a
createRoot state act= Node (state act Root 0 [])

我已经向Node构造函数传递了完全相同数量的5个参数,但是我遇到了错误。

• Couldn't match expected type ‘Node s a’
              with actual type ‘a1
                                -> Node s1 a1 -> Int -> [Node s1 a1] -> Node s1 a1’
• Probable cause: ‘Node’ is applied to too few arguments
  In the expression: Node (state act Root 0 [])
  In an equation for ‘createRoot’:
      createRoot state act = Node (state act Root 0 [])
• Relevant bindings include
    act :: a (bound at Search.hs:43:24)
    state :: s (bound at Search.hs:43:18)
    createRoot :: s -> a -> Node s a (bound at Search.hs:43:1)
答案

括号用于分组表达式。 (length "hello" + 2)是一个单一的值,而不是4。

同样,Node (...)Node应用于单个参数:(state act Root 0 [])。显然这是错的(并且需要state成为一个带有四个参数的函数)。

解决方案是删除括号:

Node state act Root 0 []

现在Node适用于五个论点。

以上是关于“'节点'应用于太少的参数”,即使有确切的数字的主要内容,如果未能解决你的问题,请参考以下文章

即使满足条件并且即使目标表和源表中的字段已经存在,雪花合并也会添加数据

Xcode 测试:清理代码,即使停止

安装 bff,即使它已经安装

为啥ios build即使成功也不会在试飞中显示

iphone - 即使禁用推送通知也会出现

为啥即使没有错误,表单也会出现错误消息?