在SICP 1.3.2中,有这个功能
(define (f x y)
((lambda (a b)
(+ (* x (square a))
(* y b)
(* a b)))
(+ 1 (* x y))
(- 1 y)))
现在在追错30分钟后,我找到了这个页面,它提供了这个功能
def f_lambda(x: Int, y: Int) =
(((a: Int, b: Int) => ((x * square(a)) + (y * b) + (a * b)))
(1 + (x * y), 1 - y))
我不明白为什么它被括号包围(如堡垒)。
编辑:对不起,我真正的问题是我不明白为什么这个函数是这样构造的。换句话说,为什么首先需要所有括号。与我目前看到的 Scala 代码相比,这看起来完全“陌生”。