在延迟计算策略(lazy evaluation strategy)中,函数的参数值,在函数调用时不会计算,直到后来用到这个值时才计算。我们回到前面的例子:
TestAndCalculate(Calculate(10));
在这里,Haskell 直接跳转到TestAndCalculate 函数主体。Haskell 会记住参数值的名字叫 num,如果在后面需要 num 值,就会运行 Calculate(10),然后,继续执行,得到 TestCondition的结果。如果这个函数返回true,表示需要值num,就执行Calculate(10);如果TestCondition 返回false,根本不调用Calculate 函数。
时间: 2024-11-06 07:32:54