首页 > 其他分享 >第四篇 手写原理代码 - 函数 【 实现 compose 函数 】

第四篇 手写原理代码 - 函数 【 实现 compose 函数 】

时间:2023-04-11 23:26:20浏览次数:35  
标签:function compose return 函数 res cb 第四篇

JavaScript 中的 Compose 函数用于组合一些函数,使得每个函数都接收上一个函数的返回值作为参数,并返回一个新的函数。可以使用这种方式把多个函数串起来,从而实现更复杂的逻辑

Comopse 函数是一个非常有用的工具,它可以帮助我们简化程序逻辑,实现代码复用,提高开发效率

实现 compose 函数

const compose = (...args) => {
  return (x) => {
    return args.reduceRight((res, cb) => {
      return cb(res);
    }, x);
  };
};

// Es6 写法
const composEs6 =
  (...args) =>
  (x) =>
    args.reduceRight((res, cb) => cb(res), x);

使用 compose 函数

function fn1(x) {
  return x + 1;
}

function fn2(x) {
  return x + 2;
}

function fn3(x) {
  return x + 3;
}

function fn4(x) {
  return x + 4;
}

const result_1 = compose(fn4, fn3, fn2, fn1);

console.log("result_1", result_1(99)); // 109

标签:function,compose,return,函数,res,cb,第四篇
From: https://www.cnblogs.com/caix-1987/p/17308234.html

相关文章

  • 流程控制,函数
    目录一、流程控制1、条件语句2、循环语句二、函数1、函数2、date_format实际应用一、流程控制1、条件语句if条件语句delimiter//CREATEPROCEDUREproc_if()BEGINdeclareiintdefault0;ifi=1THENSELECT1;ELSEIFi=2THENSEL......
  • 三类常见的可积函数积分
    常见可积函数积分三角有理积分令\(tanx\frac{x}{x}=t\)\(\intR(sinx,cosx)dx=\intR(\frac{2t}{1+t^2},\frac{1-t^2}{1+t^2})\frac{2}{1+t^2}\)推导公式\(\tanx与\sinx的转化\)令\(\tan\frac{x}{2}=t\)\(sinx=2*sin\frac{x}{2}*cos\frac{x}{2}\),分......
  • Docker CLI docker compose convert常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • 离线安装Docker、docker-compose、harbor、rancher、jenkins
    全文重点参考:https://blog.csdn.net/yuyangchenhao/article/details/117573732部署环境:1.centos72.ubuntu22.043.树莓派(这部分另写)离线环境下部署。0.前期准备  本文使用了上面博客提供的全部文件,可自行下载:https://pan.baidu.com/s/1Vp8R0Ac8KLHw2KlOiqtK8A......
  • 函数的定义与调用
    函数定义和使用函数定义function函数([参数1,参数2...]){方法体[返回值]}//定义函数functiongetAge(price,number){varsum=price*number//函数体returnsum;//返回值}函数调用getAge(10,5);//调用函数functioncheckName(){vare=form.username......
  • 常用字符串处理函数
    1split以某一字符来分割字符串  2substring从第零位截取前五个去掉前六个字符3操作数组 ......
  • 如何实现一个惰性函数
    惰性函数指在函数运行过程中,当无需重复校验判断的模块,频繁调用时,可以考虑惰性函数的思路比如 functionhandleFn(){if(当满足这个条件时){return(arg)=>{所需执行的代码}}else{当其他条件时return(arg)=>{所......
  • Kotlin Compose 删除条目并刷新数据源 Flow 与Pager3 与 Compose 最佳做法
    删除方式有很多种。。成功的却不多。。分享一下首先在viewModel中创建两个变量privateval_deletedDialogHashs=mutableStateOf(setOf<String>())valdeletedDialogHashs:State<Set<String>>=_deletedDialogHashs在viewModel中声明的删除方法也很简单funremoveFeedDial......
  • C++核心编程之-函数提高
    函数提高函数默认参数在c++中,函数的形参列表中的形参是可以有默认值的。语法:返回值类型函数名(参数=默认值){}注意点:1、如果某个位置参数有默认值,那么从这个位置往后,必须都要有默认值​ 2、如果函数声明有默认值,函数实现的时候就不能有默认参数函数占位参数C++中......
  • ubuntu上安装docker-compose遇到Permission denied问题
    根据github.com/docker/compose/releases中安装compose的说明,在ubuntu上执行以下安装命令:curl-L https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose命令执行返回的结果是:-bash:/usr/......