我正在寫一個函數,它從列表中獲取元素並返回它們。爲什麼haskell中的「需要」更改數據類型?
很簡單,我以爲。但是,當使用「走」在例如:take 2 [1.2,3,4]
返回:[1.2,3.0]
當我真正想[1.2, 3]
我想用於創建列表並削減不必要的小數進入功能,但我不能讓我的頭周圍看到Haskell沒有接受我隨x &圓(X)在
function :: [a] -> [a]
function(x:xs)
if x == round(x) = round(x):function xs
else x:function xs
所以比較:有沒有簡單的解決方案? B:爲什麼Haskell比較x與round(x)?
您是否試過'[1.2,3]'沒有'take'?如果沒有,我建議你這樣做。這根本不是「錯誤」。 –
它看起來像你試圖用來定義'function'的語法不正確。表達式'x == round(x)'是非常好的,但是語法如下所示:'function(x:xs)| x == round(x)= round(x):function xs;函數(x:xs)= x:函數xs' –
@TannerSwett表達式'x == round x'很好,但沒有具體的類型(在標準庫中),你可以給'x'它類型正確。 –