首页 > 其他分享 >经典面试题函数柯里化: add(1)(2)(3) = 6

经典面试题函数柯里化: add(1)(2)(3) = 6

时间:2023-08-14 19:45:29浏览次数:40  
标签:面试题 const log res args add inner 柯里化 currying

function currying() {
  const args = Array.prototype.slice.call(arguments);

  const inner = function () {
    args.push(...arguments);
    return inner;
  };
  inner.__proto__[Symbol.toPrimitive] =
    inner.toString =
    inner.getValue =
      () => args.reduce((prev, next) => prev + next, 0);

  return inner;
}

const sum = currying(1)(2)(3);
console.log(sum*1);// 6

const res = currying(1, 2, 3, 4, 5)(6, 7)(8, 9)(10);
console.log(res.getValue()); // 55
console.log(res - 1); // 54

标签:面试题,const,log,res,args,add,inner,柯里化,currying
From: https://www.cnblogs.com/echoyya/p/17476313.html

相关文章

  • svn add代码时,忽略node_modules
    1.选中项目,右键,选择TortoiseSVN =>  Properties2.点击New,选择Other 3.Propertyname:选择svn:global-ignores 在Propertyvalue中输入:.idea*.iml.svnvcs.xmlworkspace.xmlmodules.xmlmisc.xml,,(要忽略上传的文件后缀名),点击OK 4:再点击new选择other选择sv......
  • [机器学习]对transformer使用padding mask
    注:本文是对GPT4的回答的整理校正补充。在处理序列数据时,由于不同的序列可能具有不同的长度,我们经常需要对较短的序列进行填充(padding)以使它们具有相同的长度。但是,在模型的计算过程中,这些填充值是没有实际意义的,因此我们需要一种方法来确保模型在其计算中忽略这些填充值。这就是p......
  • 《java面试宝典》之SQL常见面试题
    一、SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)二、基本语法1、创建数据库createdatabasedatabase-name2、删除数据库dropdatabasedbname3、创建新表createtabletabname......
  • UOI 2023 An Array And Addition Again
    传送门:https://uoi2023-2.eolymp.io/problems/3题目大纲:给予一个整数n。(n<=1e18)你现在有一个数组a,a的所有号码为0除了a[100]为1你需要给一些指令,每一个指令需要一个整数s,他会进行d[s]+=d[s+1]你需要找到一串指令使得d[1]=n输出指令的长度:然后每个指......
  • laravel 面试题
    laravel框架面试题1.什么是Laravel框架?它的主要特点是什么?Laravel框架是一个用于构建Web应用程序的开源PHP框架,它提供了许多工具和功能来简化开发流程。其特点包括优雅的语法、强大的路由系统、EloquentORM、Blade模板引擎等2.如何通过Composer安装Laravel?使用Composer......
  • 自动获取 DNS server address
    "ObtainDNSserveraddressautomatically"是一种网络配置选项,它允许计算机或其他网络设备通过动态主机配置协议(DHCP)从网络中的路由器或服务器自动获取DNS(域名系统)服务器的地址。DNS服务器的作用是将域名转换为相应的IP地址,以便在互联网上定位和连接到特定的网站或资源。在这......
  • Caddy 入门实战(2)--简单使用
    本文主要介绍Caddy的实际使用,配置Caddy使用Caddyfile+CLI的方式;文中所使用到的软件版本:Centos7.9.2009、Caddy2.4.6。1、配置日志{log{outputfile/home/mongo/soft/caddy_2.6.4/caddy.loglevelINFOformatconsole{......
  • Linux常见面试题,应对面试分享
    操作系统基础1.cpu占⽤率太⾼了怎么办?排查思路是什么,怎么定位这个问题,处理流程其他程序:1.通过top命令按照CPU使⽤率排序找出占⽤资源最⾼的进程2.lsof查看这个进程在使⽤什么⽂件或者有哪些线程3.询问开发或者⽼⼤,是什么业务在使⽤这个进程4.是否可以将这台机器隔离,不影响......
  • 空天院面试题准备-1
    Transformer和CNN的区别:1、Transformer还是机器学习,但是没有卷积、pooling等操作,也没有循环;2、很好的利用了每一行数据之间的相关性,机制的解释性是比较强的,更适用于NLP;3、CNN关注于二维局部数据之间的相互关联,随着层的加深,关注区域会更广,更适用于图像处理。4.Transformer中引......
  • 前端JavaScript高频面试题
    一、js基本概念1.HTML语义化理解?得分点:语义化标签,利于页面结构化,利于没有css页面也可读,利于SEO,利于代码可读标准答案:在使用html标签构建页面时,避免大篇幅的使用无语句的标签2.说一说盒模型?得分点:标准盒模型、怪异盒模型(box-sizing:border-box;)、盒模型大小标准答案:标......