簡體   English   中英

如何在 Haskell 中找到 3 個整數中最小的一個?

[英]How can I find the smallest of 3 integers in Haskell?

作為 Haskell 的初學者,我正在嘗試編寫一個代碼來找到 3 個整數中的最小數。 這是我到目前為止。 誰能把我推向正確的方向?

smallest :: Int -> Int -> Int -> Int
smallest a b c = min a b c

min函數接受兩個參數,這就是您的代碼無法編譯的原因。 但是,您可以調用min兩次:

smallest :: Int -> Int -> Int -> Int
smallest a b c = min a (min b c)

如果你對調用兩次不滿意,想要更簡潔的解決方案,你可以使用minimum函數。 它接受一個列表並返回其最小值:

smallest :: Int -> Int -> Int -> Int
smallest a b c = minimum [a, b, c]

@Zheka 的代碼適用於三個數字,如果您需要更多,只需注意到min a (min bc)看起來就像一個折疊:

smallest a b c = foldl1 min [a, b, c]

Pointfree 風格:

smallest :: Int -> Int -> Int -> Int
smallest = (min .) . min

暫無
暫無

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

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