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; }

这个“Deriver”习惯用法(用Typescript编写,但不是特定于Typescript)是否有一个标准名称:

类型派生={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
if
samePrefix

相反,看起来你正在做的是创建一种函数,它能够从以前的状态中恢复

这种模式有许多不同的名称,所以由您决定您认为最适合您的情况。以下是一些建议:

  • 减速机
    /
    减速机
  • FoldResult
    /
    文件夹
  • 聚合
    /
    聚合器

    • 我的第一个想法是,这是一种只有一个记忆结果的形式。但是,如果是这种情况,您只需返回
      previous.result
      if
      samePrefix

      相反,看起来你正在做的是创建一种函数,它能够从以前的状态中恢复

      这种模式有许多不同的名称,所以由您决定您认为最适合您的情况。以下是一些建议:

      • 减速机
        /
        减速机
      • FoldResult
        /
        文件夹
      • 聚合
        /
        聚合器

      你能举个例子说明它是如何使用/实现的吗?当然-在描述中增加了一个。命令式编程?动态规划?回忆录?您如何调用
      calcDeriver
      ?这个函数没有任何意义。你能给出一个如何使用/实现它的例子吗?当然-在描述中添加了一个。命令式编程?动态规划?回忆录?您如何调用
      calcDeriver
      ?此函数没有任何意义。此处真正描述的模式发生在.reduce(complexCalculation,previous.result)处,此答案+1此处真正描述的模式发生在.reduce(complexCalculation,previous.result)处,此答案+1处