所以基本上我试图在列表中找到第二个最小值,问题是mino和secondMin返回false而不是数字。当我手动minlist(List,Min)时,它会返回Min = number,但是我无法获得该值来获取该值。相反,它仍然是错误的。有人可以帮忙吗?
第二个最低要求
removeFromPantry(name, amount){
var item = {quantity: amount, name:name};
console.log(item);
var items = this.state.pantry.filter(function(itm){
console.log(itm);
console.log((item.name != itm.name) && (item.quantity != itm.quantity));
return (item.name != itm.name) && (item.quantity != itm.quantity);
});
this.setState({ pantry: items });
// this.forceUpdate();
}
答案 0 :(得分:2)
您需要阅读教程或获取教科书。只有算术“函数”返回值,如果在该模式下调用,则所有其他谓词只使用其中一个参数进行输出。
类似
minlist(List, Min)
而不是
Min is minlist(List)
这有点奇怪,因为你在谓词的开头几次正确地执行它,然后突然你开始做错了。
对于“列表中第二小的数字”,这可能更容易:
第二个最小元素是列表是排序列表中的第二个元素。
second_smallest(List, SS) :-
sort(List, [_,SS|_]).
如果列表未被列入,则会中断,但原始尝试也是如此。