f0 :: Int -> Int -> Int -> Int
f0 a b c = x a b - x a c - x b c
where x b a = a + b
有人可以向我解释一下函数到达目的地时如何知道吗?
where x b a = a + b
...声明?它只是翻译成这样吗?
f0 a b c = (a + b) a b - (a + b) a c - (a + b) b c
答案 0 :(得分:4)
[...]还是仅仅是“ x”只是另一个需要两个变量并将其相加的函数[...]
完全正确。
x b a = a + b
是一个函数定义(恰好具有局部作用域)。f0 0 0 1 = x 0 0 - x 0 1 - x 0 1
。 – duplode
答案 1 :(得分:1)
在其他一些伪语言中,它看起来像这样。
int function fo(int a, int b, int c){
int function x(int a, int b){
return a + b;
}
return x(a,b) - x(a,c) - x(b,c)
}
您的提问方式
f0 a b c =(a + b)a b-(a + b)a c-(a + b)b c
它看起来像C宏一样的内联替换。这不是简单的代码替换。它更像是内联函数。 X是被调用的函数。