Typescript 这个习惯用法是否有一个名称,它根据以前的值和结果计算新的结果?
这个“Deriver”习惯用法(用Typescript编写,但不是特定于Typescript)是否有一个标准名称:Typescript 这个习惯用法是否有一个名称,它根据以前的值和结果计算新的结果?,typescript,functional-programming,Typescript,Functional Programming,这个“Deriver”习惯用法(用Typescript编写,但不是特定于Typescript)是否有一个标准名称: 类型派生={value:T,result:R}; 类型派生器=( 上一个:派生|未定义, 值:T )=>R; 其中,deriver是一个函数,它使用以前的值/结果作为提示来计算新值R,以潜在地优化新计算 下面是这样一个函数的示例: function complexCalculation(a:number,b:number):number{ //假设这个函数很昂贵 返回a+b; }
类型派生={value:T,result:R};
类型派生器=(
上一个:派生|未定义,
值:T
)=>R;
其中,deriver
是一个函数,它使用以前的值/结果作为提示来计算新值R
,以潜在地优化新计算
下面是这样一个函数的示例:
function complexCalculation(a:number,b:number):number{
//假设这个函数很昂贵
返回a+b;
}
函数计算器(
上一个:派生|未定义,
值:数字[]
):号码{
如果(先前){
if(previous.value==值){
返回以前的结果;
}
让samePrefix=true;
如果(先前的.value.length
我的第一个想法是,这是一种只有一个记忆结果的形式。但是,如果是这种情况,您只需返回previous.result
ifsamePrefix
相反,看起来你正在做的是创建一种函数,它能够从以前的状态中恢复
这种模式有许多不同的名称,所以由您决定您认为最适合您的情况。以下是一些建议:
/减速机
减速机
/FoldResult
文件夹
/聚合
聚合器
- 我的第一个想法是,这是一种只有一个记忆结果的形式。但是,如果是这种情况,您只需返回
previous.result
ifsamePrefix
相反,看起来你正在做的是创建一种函数,它能够从以前的状态中恢复
这种模式有许多不同的名称,所以由您决定您认为最适合您的情况。以下是一些建议:
/减速机
减速机
/FoldResult
文件夹
/聚合
聚合器
calcDeriver
?这个函数没有任何意义。你能给出一个如何使用/实现它的例子吗?当然-在描述中添加了一个。命令式编程?动态规划?回忆录?您如何调用calcDeriver
?此函数没有任何意义。此处真正描述的模式发生在.reduce(complexCalculation,previous.result)处,此答案+1此处真正描述的模式发生在.reduce(complexCalculation,previous.result)处,此答案+1处