如何将ES6函数的柯里化用一句代码改写成长尾?

2026-04-05 10:288阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1454个文字,预计阅读时间需要6分钟。

如何将ES6函数的柯里化用一句代码改写成长尾?

简而言之,函数柯里化是做什么的?首先看看下面的这个函数+let store=(a, b, c)=这是你的七仔面 // 函数就像一个小卖部,一包七仔面要三张软妹币:a, b, c (五个参数) + 函数柯里化是啥?就是买面的时候,可以先给一张软妹币,然后我再问你要第二张,最后再问你要第三张:‘买面了没?’‘还没呢,先来一张软妹币’‘好的,再来一张’‘再来一张’‘好了,三张都来了,可以给你面了’

柯里化是干什么的?首先看看下面这个函数

let store = (a,b,c) => "这是你的七仔面" //函数就好像一个小卖部,一碗七仔面要三张软妹币:a,b,c (五个参数)

那函数柯里化是什么?就是我们买面吃的过程可能是这样:

let curryStore = curry(store) //刚刚的小卖部被柯里化了 //最佳状况 curryStore(1,5,1)// 老板,刚好!不用找了,刚好七块钱。老板: "这是你的七仔面" //偶尔出现的情况 let boss = curryStore(5) //老板,这五块钱你先拿着,我找找有没有一块钱。老板:…… boss = boss(1) //有了老板,这一块钱你先拿着,我找找还有没有一块钱。。老板:…… boss(1) //哈哈,终于找到了,给!老板:"这是你的七仔面" curryStore(5)(1)(1) //等价于上诉情况

所以这里我们可以看到,函数柯里化,是可以用来慢慢凑齐参数,延迟函数的执行。

阅读全文
标签:柯里

本文共计1454个文字,预计阅读时间需要6分钟。

如何将ES6函数的柯里化用一句代码改写成长尾?

简而言之,函数柯里化是做什么的?首先看看下面的这个函数+let store=(a, b, c)=这是你的七仔面 // 函数就像一个小卖部,一包七仔面要三张软妹币:a, b, c (五个参数) + 函数柯里化是啥?就是买面的时候,可以先给一张软妹币,然后我再问你要第二张,最后再问你要第三张:‘买面了没?’‘还没呢,先来一张软妹币’‘好的,再来一张’‘再来一张’‘好了,三张都来了,可以给你面了’

柯里化是干什么的?首先看看下面这个函数

let store = (a,b,c) => "这是你的七仔面" //函数就好像一个小卖部,一碗七仔面要三张软妹币:a,b,c (五个参数)

那函数柯里化是什么?就是我们买面吃的过程可能是这样:

let curryStore = curry(store) //刚刚的小卖部被柯里化了 //最佳状况 curryStore(1,5,1)// 老板,刚好!不用找了,刚好七块钱。老板: "这是你的七仔面" //偶尔出现的情况 let boss = curryStore(5) //老板,这五块钱你先拿着,我找找有没有一块钱。老板:…… boss = boss(1) //有了老板,这一块钱你先拿着,我找找还有没有一块钱。。老板:…… boss(1) //哈哈,终于找到了,给!老板:"这是你的七仔面" curryStore(5)(1)(1) //等价于上诉情况

所以这里我们可以看到,函数柯里化,是可以用来慢慢凑齐参数,延迟函数的执行。

阅读全文
标签:柯里