F# 这个函数是如何工作的?
我面临着这个密码F# 这个函数是如何工作的?,f#,F#,我面临着这个密码 let quadruple x = let double x = x * 2 而且提到,, fourple调用double函数两次以执行(低效的)四倍 这是怎么发生的? 我认为四极体得到x,然后x将被传递给四极体中定义的双精度体。因此,它必须作为堆栈工作 它首先计算x*2,然后将结果返回到四倍,就结束了 那么为什么fourple调用double函数两次呢原来的代码段又少了一行。它一定是这样的: let quadruple x =
let quadruple x =
let double x =
x * 2
而且提到,,
fourple调用double函数两次以执行(低效的)四倍
这是怎么发生的?
我认为四极体得到x,然后x将被传递给四极体中定义的双精度体。因此,它必须作为堆栈工作
它首先计算x*2,然后将结果返回到四倍,就结束了
那么为什么fourple调用double函数两次呢原来的代码段又少了一行。它一定是这样的:
let quadruple x =
let double x =
x * 2
double(double x)
以这种方式编写,double
只是fourple
中定义的一个内部子函数。这只是一个定义。除非有人打电话,否则它什么都干不了
最后一行属于
quartle
的主体。实际上,它首先使用x
参数调用double
,然后使用接收到的结果再次调用,实际上是原始值的四倍。原始代码段又少了一行。它一定是这样的:
let quadruple x =
let double x =
x * 2
double(double x)
以这种方式编写,double
只是fourple
中定义的一个内部子函数。这只是一个定义。除非有人打电话,否则它什么都干不了
最后一行属于
quartle
的主体。实际上,它首先使用x
参数调用double
,然后使用收到的结果再次调用它,实际上是原始值的四倍。按原样,您的代码无效,在这个“let”[let double one]后面引发:块未完成。需要一个表达式。按原样,您的代码无效。在“let”[let double one]后面引发:块未完成。期待一个表情。