我先来:递归 -> Y 组合子 -> Monad
1
liudewa 72 天前
异步
|
3
vfs 72 天前
一个函数返回另外一个函数,一个函数的参数时另外一个函数。 这绝对是取乱之道
|
6
Maboroshii 72 天前 1
yield 绝对算一个
|
7
Building 72 天前 9
Process 懂了
Thread 懂了 Queue 懂了 Group 懂了 Atom 懂了 Lock 懂了 Await/Async 懂了 Promise 懂了 Callback 懂了 当你把他们放在一起的时候... |
8
nagisaushio 72 天前 via Android 3
难懂概念千千万,rust haskell 占一半
|
9
zeonluang 72 天前 1
js 里的原型和 promise 把
|
10
pisc 72 天前 1
Monad 有啥难理解的? A monad is just a monoid in the category of endofunctors, what’s the problem?
想要实用一点的理解? A monad is just a typeclass with the three laws ! 还是不太好理解? A monad is just the bind/flatMap !!! |
11
tinytoadd 72 天前
tokio
|
12
JackYao 72 天前
@Maboroshii +1 当年理解这货 废了我好多脑细胞
|
13
passive 72 天前 via Android
cps 、monad 这些都简单。
#define 宏替换比较绕 |
14
kissmenow 72 天前
golang 的指针传参
|
15
dapang1221 72 天前
yield ,最开始接触的时候寻思这是啥破玩意,理解之后恍然大悟,惊为天人
|
16
lonelee 72 天前
自旋锁/偏向锁
|
17
csys 72 天前
|
18
Wh1t3zZ 72 天前
yield
|
19
caqiko 72 天前 via Android 1
泛型类和具体实现类
看的迷迷糊糊的 |
20
PTLin 72 天前
学 c 的时候是指针。
学 python 的时候是 generator 和 async await 。 学 rust 的时候是所有权和生命周期。 学 Haskell 的时候是 reader applicative/monad/,monad transformer 。 |
21
DOLLOR 72 天前 7
@vfs
如果你从来只写过 java ,可能确实就会觉得函数作为返回值、参数、变量,是无法理解的事情。 反过来也一样,学过其他语言(尤其函数是一等公民的语言)的人看 java ,也会很困惑 java 这边为了传递 callback ,还要整出依赖注入、控制反转这些设计模式。 |
22
netabare 72 天前 via iPhone
DDD 和六边形那套东西,函数式编程的概念反而没什么难的
|
23
GuardX 72 天前
reactor 那套,比如背压。。
|
25
xuanbg 72 天前
其实不是概念难以理解,更多的是名词难以理解。譬如 JS 的原型链和闭包
|
26
wangjh0802 72 天前 3
就没人提 控制反转 和 依赖注入吗 哈哈哈哈哈哈哈
|
28
TWorldIsNButThis 72 天前 via iPhone 1
闭包是穷人的对象 对象是穷人的闭包
|
29
nagisaushio 72 天前 via Android
楼主想要讨论编程语言概念,但楼上说的有些并不是编程语言概念
|
30
johnhsh 72 天前
闭包
|
31
GeekGao 72 天前
C++ 的模版、预编译指令
|
32
povsister 72 天前
Makefile
|
34
rabbbit 72 天前 1
指针
函数式编程 ts 类型体操 |
35
M4n5ter 72 天前
第一眼看到 go1.23 有些丑陋的迭代器和其文档中给出的 example 时
|
38
echoless 72 天前
我觉得没有难的概念, 只是大部分人(包括很多知名教授)没有把一个概念解释清楚的能力.
我看递归, Monad, 都是看多个资料慢慢懂得. 你要懂 C. 可能需要你先了解 A, B, 但是你可能不懂 A, 或者你知道 B’. 但是很多资料(或者老师), 给所有人直接讲 C. 那么就是恰好了解 A, B 的人明白了 C. 因为你不懂 A, 了解 B’, 又干扰了你了解 B. 所以会觉得 C 很难. 教学是 1 对 1 的. 需要知道学习的人的状态, 要学习的概念. 跟化学反应一样, 要把所有的条件都达到, 才能进入下一步. |
39
echoless 72 天前
@levelworm #37 这个绝对是那些追求 Pure functional 的把函数编程给弄的阳春白雪了. pure functional 代价很大.
但是函数编程思想倒是很容易理解, 根本在于对状态(state)的处理上. C 语言可以 OOP 也可以 FP. 追求 pure OOP 或者 pure FP 就意义不大. |
40
echoless 72 天前
插一句, 我想象中科班和非科班的 CS 区别, 在于编程语言理论, 计算理论. 但是实际上, 无论科班和非科班, 99.99%的人都是刷题, 被八股文, 搞我这个非科班的也可以滥竽充数.
|
41
yb2313 72 天前
今天看 go 那个生成器看晕了, 最后才发现我看漏了, 是个语法糖
|
44
aliensb 72 天前
erlang 这都是啥
|
45
Acsw 72 天前
闭包,内存屏障
|
46
kinkin666 72 天前
高三结束准大学生的时候去新华书店看《 C#入门经典(第四版)》看到第六章泛型,卡在那里卡了一个星期,有一天一瓶可乐干下去,悟了,这就是把类型当参数!!!
下一次再这么悟是在学高数下册和离散数学的时候,高数里三层积分里面那个函数我就当它是回调函数了、离散数学和线性代数里那些东西我就当他是 C++里的运算符重载了 haskell 、scala 、f#、pearl 这些东西没用过,粗看一眼看不懂 |
47
raptor 72 天前
印象中第一个这种坎是二十多年前在汇编语言的保护模式,后来搞懂了。第二个这种坎是十几年前 C++的 TMP ,后来放弃了 C++。
|
48
purringpal 72 天前 via iPhone
可以考虑备注一下大学专业和工作年限,作为科班毕业来说,完全 get 不到楼上说的这些困扰~
|
49
yafoo 72 天前 via Android
yield
|
50
qinfensky 72 天前 via iPhone
Macro
|
51
spidah 72 天前
monad
|
53
NoOneNoBody 72 天前
堆、栈 其实至今只能说知道大概
|
54
iintothewind 72 天前
CPS (Continuation-passing style)
HOF(Higher-order function) 还有些其它的, 总之就是函数式编程真的很费脑子,不过挺好玩,逼格确实挺高的,就是工作中几乎用不上。 |
55
busuzhike 72 天前
python 的装饰
|
57
ZGame 72 天前
@echoless #39 应该是说能把函数式写明白很难。函数式增加了很多约束,如果编程的时候按照相关规范去做,思维负担会减轻,局部查看每个函数的时候只用关系入参和出参对不对。 然后现实是因为约束的原因,取巧或者工期赶,有的变量直接就透传进来,然后就变成了使用函数式的方式,写出了非函数式的代码,反而加重了局部查看代码时候的混乱度。另外类似 java 后端 rjdbc 函数式的 zip,merge 等等响应式的 api 在进行调试的时候,我个人感觉也没有传统的编程方式那样好调试
|
59
nutting 72 天前
js 的底层。异步啥的那些有点别扭
|
60
test4zhou 72 天前
js 一些底层原理
|
61
diroverflow 72 天前
指针这个概念主要是名字起的不好,其实不就是内存地址吗?学过汇编的都能理解
|
62
querysecret 72 天前 1
协变、逆变
|
63
dododada 72 天前
设计模式,太多了,很多死搬硬套,最怕那种一开口就是我觉得这个用什么什么模式比较好的,以前有个同事,不管什么语言,上来就是设计模式,头大
|
64
a1b2c3T 72 天前
我感觉大部分设计模式都不是太好理解,可能单独看示例 i 还可以,但是自己用的时候就不大行了。
|
65
MRG0 72 天前
闭包
|
66
xntzmk 72 天前
@Maboroshii 赞同,还好后面 async 冒出来了
|
67
lew1 72 天前
套接字
|
68
shangyu7 72 天前
"对象"
|
69
theprimone 72 天前 1
”运行时“,本科相当长一段时间没懂啥意思 😅
|
70
CREEPER5 72 天前
右值引用,每次看的时候觉得自己理解了,事后发现并没有
|
72
p1gd0g 72 天前
刚入行搞不懂 interface ,业务写多了自然也就明白了
|
73
Fallever 72 天前
逆变和协变 对于人来说这是很自然的转换. 但是到泛型里再加上拗口的翻译 真的绕晕了
|
74
coderzhangsan 72 天前
@theprimone +1
runtime 看中文教材很难理解,可能是最早接触并翻译的人,没有系统性的理解,犯了民科的毛病,类似的还有所谓 TCP 粘包。 |
75
sunrain 72 天前
刚学 OC 的时候吧,这是什么鬼?!
|
76
Mogamigawa 72 天前 via Android
我自己最近的新发现:
符号越多,看着越难 直接用关键词,就好理解多了 |
78
qW7bo2FbzbC0 72 天前
@vfs 我在 go 里面遇到这种情况最多。。。
|
79
jheroy 72 天前
过程式编程都不算啥,去看下 erlang 这种纯函数式编程才知道啥叫难理解,什么高阶函数什么单次赋值就不说了,就尾递归这概念就比较难理解。虽然纯函数编程数学上完美,就是不是按人好理解设计的,不过学数学专业出身的应该很喜欢。
|
80
loryyang 72 天前
c++ 元编程见过吗?
|
81
aleimu 72 天前
一通百通
|
82
opengps 72 天前
竟然没人说:完成端口
|
83
neimengwuyanzu 72 天前
@csys lambda 真的就是 写时候还行 写完过段时间在回头看 自己写的读起来有点费劲
|
84
LitterGopher 72 天前
套接字+句柄
(我觉得是翻译问题,你要说是网络通讯和指针我当场就能理解) |
85
me1onsoda 72 天前
自从我开始写 go ,我发现我对 interface 一无所知
|
86
davin 72 天前
说多了都是语法糖
|
87
javazero 72 天前 via Android
rust 的特征?我不是科班出身,只会 Python 。想学点底层的,看到特征想着以后再看,结果再也没看过了哈哈
|
88
EndlessMemory 72 天前
promise.then
|
89
Subfire 72 天前 1
"你们自己先入为主地错误地认为 send 与 recv 是一一对应的, 从而生造出"TCP 黏包"这种东西, 还有理了吗?"
|
90
aloxaf 72 天前
Memory Order
|
91
inhzus 72 天前
C++ coroutine 提案
|
92
winglight2016 72 天前
scala 的柯里化阻止了我学习 Scala
|
93
leona723 72 天前
递归,每次做这个我感觉我就进入了无限循环的时空里
|
94
yazinnnn0 72 天前
谁能解释一下 call/cc
看过一些解释 call/cc 的文章, 我对这个概念的理解还停留在 "砸哇噜多" 阶段 |
96
KFCVIVO50 72 天前
异步+事件循环
|
97
FYFX 72 天前
continuation ,
|
98
qbmiller 72 天前
python 的异步
|
99
17681880207 72 天前
@kissmenow
传指针其实就是传内存地址吧,这么理解 |
100
Dcrclub 72 天前
难以理解的东西, 基本都是故意为之, 目的就是增加编程的入门门槛, 很多能用白话解释的东西. 故意弄个晦涩难懂的词,搞到这里, 有的还是用英文表示. 显得很高大上
|