[英]Define if numbers in list are less than one in parameter - Scala
编写一个 function,它的输入有两个参数:一个整数列表和一个数字。 output 返回一个逻辑值。 如果列表中的所有数字都小于第二个参数中给出的数字,则 function 将返回“true”。 否则,function 返回“false”。
我的代码:
def less [A](list:List[A], number:Int):Boolean =
if (list == Nil) false
else ((List.head < number) && less[A](list:List.tail, number:Int))
less(List(1, 2, 3, 4), 5)
less(List(6,1,2,3),6)
IntelliJ 中的错误消息:
第3行:错误:值头不是object列表的成员
else (List.head < number) && less[A](list:List.tail, number:Int) //2
^
第 3 行:错误:尾类型不是 object 列表的成员
我的问题:我应该在这段代码中改进什么才能让它工作?
看起来很像家庭作业...
Scala 有一个forall
function 可以针对集合中的所有值测试谓词并返回Boolean
。
def less(xs: List[Int], number: Int) = xs.forall(x =>???)
我想你想要这样的东西:
def less (list:List[Int], number:Int):Boolean =
if (list == Nil) true
else ((list.head < number) && less(list.tail, number))
less(List(1, 2, 3, 4), 5)//true
less(List(6,1,2,3),6)//false
但是你应该像@Brian说的那样使用forall
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.