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