簡體   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