微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类型不匹配计数列表F#

如何解决类型不匹配计数列表F#

我试图理解为什么此代码出错,但是对我来说这没有任何意义。我相信它应该可以正常工作,因为在其他情况下,我只需重新输入该函数,直到n&index相等即可。我试图获取列表的第三个元素。

async function getRooms(type) {

    let roomsByType = [];

    let roomsByType = await Rooms.find({ type: type });

    if (roomsByType.length) {
        console.log("Get Room Function " + roomsByType.length)
    } else {
        console.log('No Rooms')
    }
    return roomsByType;
}

解决方法

“全部捕获”行上的代码有几个问题。 首先,您尝试使用单个元组参数而不是3个单独的参数来调用该函数。通话应该看起来像

  elem (index+1) n tail

但是更大的问题是,没有为这种情况定义tail。这意味着您的算法有问题,您应该解决此问题。

,

嗯,不知道为什么在堆栈溢出中答复时代码格式化不起作用,无论如何我都理解了问题,这是原因:

在上面的代码中,我称为 elem(索引+ 1,n,尾部)。原来,这是一个带有一个称为元组的参数的函数,但是已声明的函数带有3个参数 elem index n list ,因此类型不匹配。

问题解决了,谢谢!

工作方式:

let rec elem index n list =
  match index,n,list with
  | (i,n',head::tail) when (i = n') -> head
  | (_,_,head::tail) -> elem (index+1) n tail     
 
elem 1 2 ["a";"b";"c"]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。