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

2018-09-12 11:56:54 +08:00
 pinews
就是 a(b(c()))这样,虽然经常这样用,总觉得怪怪的,不知道在哪里是否有专门的说明?
15334 次点击
所在节点    PHP
148 条回复
shenjo
2018-09-12 12:27:39 +08:00
一等公民了解下?
shisang
2018-09-12 12:39:18 +08:00
fp 了解一下
wizardoz
2018-09-12 12:41:37 +08:00
求值顺序了解一下
shisang
2018-09-12 12:41:56 +08:00
你看到 clojure 不得疯掉,全是括号
hhsuan
2018-09-12 12:42:36 +08:00
有什么语言是不能这样写的吗?
reus
2018-09-12 12:43:02 +08:00
小学生都知道 1 * (2 + 3) 吧。为什么 (2 + 3) 可以做被乘数?一样道理,改成前缀表达式就是 *(1, +(2, 3)),和函数调用就一样了
janus77
2018-09-12 12:45:01 +08:00
我的年龄是 10+10 岁。
jmc891205
2018-09-12 12:46:07 +08:00
数学上的 f(g(h(x)))楼主有疑问吗?
zsdroid
2018-09-12 12:52:18 +08:00
多年写错了吧,可能是多日
K0
2018-09-12 12:58:10 +08:00
mov eax, dword
ret
lzhCoooder
2018-09-12 13:04:16 +08:00
c 先压栈执行完弹出,b 再压栈再弹出,a 再压栈再弹出...你再连着用一个线程只有一个调用栈,不影响的
PythonAnswer
2018-09-12 13:05:04 +08:00
各种汇编佬都出来了
lty494685444
2018-09-12 13:07:20 +08:00
编程水平不知道,不过我感觉楼主你数学应该不太好
lihongjie0209
2018-09-12 13:07:44 +08:00
用过 linux 的管道吗, 一样的

a(b(c()))

c() | b | a
zhzer
2018-09-12 13:09:14 +08:00
那你这基础有够逊的
代码解析成 AST 然后根据后序遍历的顺序,从最底层求值,每一层 function 拿到的都是结果并非过程
RqPS6rhmP3Nyn3Tm
2018-09-12 13:10:12 +08:00
汇编,stack pointer
ksco
2018-09-12 13:13:05 +08:00
写了多年程序?莫非楼主写的是 PHP ?(狗头保命
xlui
2018-09-12 13:17:31 +08:00
编译原理了解一下
forblackking
2018-09-12 13:24:39 +08:00
用 FP 来看函数是一等公民可以作为输入输出,内层函数的结果作为参数依次传给外层函数
misaka19000
2018-09-12 13:26:38 +08:00
这和柯里化毛关系没有

一个字:栈

话说楼主真不是开黑 PHP 的?

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

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

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

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

© 2021 V2EX