如何解决类型不匹配计数列表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] 举报,一经查实,本站将立刻删除。