如何将使用模式匹配定义的函数转换为等效的lambda?

Bln*_*pwr -2 haskell

我该怎么写

f 0 = 1
f x = (f(x-1))*2 + 2 
Run Code Online (Sandbox Code Playgroud)

作为哈斯克尔的一个lambda?

谢谢你的期待.

Dan*_*zer 6

您将从右侧移动模式匹配并使用case表达式

f = \ x -> case x of
  0 -> 1
  x -> f (x-1) * 2 + 1
Run Code Online (Sandbox Code Playgroud)