簡體   English   中英

這個function的結果是什么?

[英]What is the result of this function?

這是我在測試中得到的代碼,我想知道 output 是什么:

funkcija[] _ = 0
funkcija (glava:rep) broj
   | glava > broj = funkcija rep broj
   | glava <= broj = glava + (funkcija rep broj)
funkcija [4,2,1,5,7,6] 2*3

我是否將數組中的頭/第一個數字與 6 (2*3) 或 2 進行比較,然后將總和乘以 3?

正確答案是 18 還是 9?

Function 應用程序優先於運算符,所以這被解釋為:

(funkcija [4,2,1,5,7,6] 2) * 3

您的funkcija本質上是一個首先過濾的總和:它只會對小於或等於第二個參數(此處為2 )的值求和,因此對於[4,2,1,5,7,6]這將求和up 2 + 13然后乘以 3 得到9

funkcija可以替換為:

funkcija :: (Num a, Ord a) => [a] -> a -> a
funkcija xs t = sum (filter (<= t) xs)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM