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