1
我正在寫一個Haskell函數,遞歸地將一個整數i
與元組列表進行比較。特別是,我想比較整數i
到列表中的每個a
(a,b)
。如果i < a
然後打印與a
遞歸比較一個整數到一個元組列表
樣品輸入/輸出對應
check 0.01 [(0.25, 'x'),(0.50,'y'),(0.75,'z')] = 'x'
check 0.4 [(0.25, 'x'),(0.50,'y'),(0.75,'z')] = 'y'
check 100 [(0.25, 'x'),(0.50,'y'),(0.75,'z')] = ' '
我寫了我會怎樣接近它的僞的b
,但我有麻煩翻譯是僞代碼到實際的Haskell功能。以下是我迄今爲止:
check :: a -> [(a,b)] -> b
check i (a,b):xs = tuples d xs
| if d <= a in (a,b) then = b //pseudocode
| id d !<= a in (a,b) then recursively check the next tuple //pseudocode
| otherwise ' ' // d is larger than all the a's of the tuple so return a space
我相信我正在考慮的方式是正確的,但我無法弄清楚如何通過整數i
相較於a
S的元組遍歷元組。任何幫助?
好吧,這是有道理的。既然你指出他們沒有返回相同的類型,如果他們都返回Char,那麼可以這樣做。我編輯了示例輸出以反映該想法 – NuNu
@NuNu給定任何固定類型,可以將此解決方案與'fromMaybe defaultValue'組合以獲得期望的結果。 'fromMaybe'函數可以從'Data.Maybe'獲得。 –
@NuNu我加了你想要的。 – Satvik