1. 纯函数是什么?它和子程序有什么区别?优点在哪?

      纯函数的定义是,对于相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用,也不依赖外部环境的状态。

    2. 手写一个柯里化函数

    • 以理解所谓的柯里化函数,就是封装一系列的处理步骤,通过闭包将参数集中起来计算,最后再把需要处理的参数传进去。
    • 实现原理就是用闭包把传入参数保存起来,当传入参数的数量足够执行函数时,就开始执行函数。 ```javascript const { log } = console; //调用curry函数,获取函数func的参数 function curry(func) { //定义一个新的函数curried,接收参数为…args return function curried(…args) {
      1. //判断新函数接收的参数长度是否大于等于func剩余参数所接收的数量
      2. if(args.length >= func.length) return func(...args);
      3. //否则 返回一个新的匿名函数,这个函数吧所有传入参数...args保存在otherArgs种
      4. return function curriedOtherFunc(...otherArgs) {
      5. return curried(...args,...otherArgs)
      6. }
      } }

    ```

    1. 手写一个管道函数
    2. 手写一个记忆函数
    3. 使用函数式手写一道算法题