如何輸出第 4 天(第 4 個索引)溫度高于 5 的城市名稱?我想不通條件。我嘗試了幾件事,但沒有任何效果。我可以獲得第 5 項的索引,但我不知道如何將其應用于專案陣列。我不能像在 Java 中那樣只做回圈。
data City = City { cityName :: String
, temperature :: [Double]
}
city1 = City {cityName = "city1", temperature = [4.50,6.50,5.0,6.48,8.54]}
city2 = City {cityName = "city2", temperature = [6.35,5.12,3.21,3.25,4.56]}
city3 = City {cityName = "city3", temperature = [7.3,5.32,4.4,4.6]}
cities :: [City]
cities = [city1,city2,city3]
getTemperatures (City _ _ temperature) = temperature
test :: City -> Double
test x = (getTemperatures x)!!5
uj5u.com熱心網友回復:
您可以使用filterand map(我在這里使用第三個索引(0-base)):
main = print $ map cityName $ filter ((>5) . (!!3) . temperature) cities -- ["city1"]
data City = City { cityName :: String, temperature :: [Double] }
city1 = City {cityName = "city1", temperature = [4.50,6.50,5.0,6.48,8.54]}
city2 = City {cityName = "city2", temperature = [6.35,5.12,3.21,3.25,4.56]}
city3 = City {cityName = "city3", temperature = [7.3,5.32,4.4,4.6]}
cities :: [City]
cities = [city1,city2,city3]
通過獲取溫度部分 ( )filter過濾(從串列中)元素,獲取第三個元素 ( ),然后將其與 5 ( ) 進行比較。citiestemperature!!3>5
,map給定來自 的輸出filter,然后采用名稱部分 ( cityName)。最后,print列印城市名稱串列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474043.html
標籤:哈斯克尔
