写了多年程序,突然想知道为什么函数可以连着用啊

2018-09-12 11:56:54 +08:00
 pinews
就是 a(b(c()))这样,虽然经常这样用,总觉得怪怪的,不知道在哪里是否有专门的说明?
15391 次点击
所在节点    PHP
148 条回复
ch940621
2018-09-12 14:48:00 +08:00
写了多年程序厉害了...
circleee
2018-09-12 14:52:38 +08:00
我毕业的时候写过 a = fun()[0]

哈哈哈哈
wangjie
2018-09-12 15:12:38 +08:00
@DOLLOR #60 用 babel7 加插件可以用了
Justin13
2018-09-12 15:20:04 +08:00
简单的线性流水式调用
chenxytw
2018-09-12 15:32:35 +08:00
a()()()() 这才是 curry.....
上面说 柯里化的在想啥
stevenhawking
2018-09-12 15:37:09 +08:00
哦,这有啥,你忘了链式方法?

->a()->b()->c()
persimmon
2018-09-12 15:46:28 +08:00
调用栈不断在加深而已 ......
SoulGem
2018-09-12 15:48:16 +08:00
多年程序都写了啥啊……
Mrlgm
2018-09-12 16:13:25 +08:00
就像 jquery 的链式调用一样,返回了个对象呗
lihongjie0209
2018-09-12 16:26:33 +08:00
楼上们就知道瞎说, 和函数式有什么关系, 只是在调用的时候参数运算了一下而已, 现在这么多装逼的?

先反驳一下函数一等公民的.

函数一等公民是函数可以作为参数和返回值.
有函数 a, b, c, d

那么函数 a 可以把 b, c 作为参数, 并返回另一个函数 d: d = a(b, c)

这才是函数是一等公民


以楼主的例子, 我完全可以用 JAVA 7 之前的任何版本写出以下代码

a(b(c()))

obj.a(obj.b(obj.c()))

那么是不是说 JAVA 在 7 之前就支持函数式了??
lihongjie0209
2018-09-12 16:27:15 +08:00
@forblackking 请问在 a(b(c())) 中, 哪里有函数了?
Malthael
2018-09-12 17:04:25 +08:00
上下文??
colinlet
2018-09-12 17:09:43 +08:00
《数据结构》
《计算机组成原理》
《计算机操作系统》
《计算机网络》
rockyou12
2018-09-12 17:13:43 +08:00
lz 一击脱离加发在 php 节点下,莫不是在钓鱼......
kakalulin
2018-09-12 17:15:03 +08:00
编译原理了解一下
GoForce5500
2018-09-12 18:03:57 +08:00
推荐 Coursera 上的 Programming Language,第二门课程有一周作业就是拿 Racket 写一个小型解释器。
CODEWEA
2018-09-12 18:05:43 +08:00
求求你 别再黑 php 了 去官网了解下匿名函数
sampeng
2018-09-12 18:08:25 +08:00
楼上的都介绍计算机系的书籍是什么鬼。。。高中数学里的函数你们吃掉了?
f(x)和 f(f(x))没见过?
HowToMakeLove
2018-09-12 18:17:25 +08:00
能分的清,多层嵌套的 for/foreach 这种吗?
SpiderXiantang
2018-09-12 18:22:27 +08:00
放入栈 从外到里一个个入栈 然后栈的时候肯定先返回里面的函数吧 瞎说的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/488475

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX