1
我想了解Haskell中的遞歸。我想用下面的屬性寫一個簡單的遞歸函數:if x > 50
then rec(x) = x - 5
and rec(x) = rec(rec(x+10))
otherwise otherwise。 這是我想出了:Haskell中的簡單遞歸
rec x = if x > 50
then x-5
else rec (rec (x+10))
的不遞歸部分似乎做工精細,但遞歸沒有。每個小於50的數字只返回50.例如rec 60 = 55
rec 40 = 50
rec 25 = 50
有關如何解決我的代碼的任何建議,將不勝感激。
提示:嘗試'rec 26'。 – duplode
與你的問題無關,但我會看守衛。他們會讓你的功能更清潔(主觀)。 – Carcigenicate
我也會提倡守衛('rec x | x> 50 = x - 5'),然後我建議你也解釋一下你期望函數返回的原因,因爲對我來說它似乎工作正常。 – jakubdaniel