是否有一个懒惰的函数(不可变)语言,其中函数有中间变量+ return?

时间:2015-06-23 12:30:49

标签: scope functional-programming lazy-evaluation

如果这有明显的答案,我道歉。我想找到一种懒惰的函数式编程语言,其中下面的伪代码是有意义的:

let f = function(x) {
    let y = x*x  // The variables y and z
    let z = y*2  // are local
    return z
}

1 个答案:

答案 0 :(得分:0)

当然,这在像haskell这样的功能性声明语言中是可行的。使用let绑定或where关键字。这些只是在一个表达式中链接在一起。

- 带'where'

的局部变量
f :: Int -> Int
f x = z where
  z = y*2
  y = x*x

- 带有

的局部变量
g :: Int -> Int
g x =
   let y = x*x
       z = y*2
     in z

https://wiki.haskell.org/Let_vs._Where