繁体   English   中英

定义列表中的数字是否小于参数 - Scala

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM