分页: 1 / 1
#1 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 17:09
由 TheMatrix
#2 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 17:16
由 heteroclinic
抽象应该方便normal form吧(我没学过中文词)。说说真么做到low coupling high cohesion的
#3 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 17:17
由 TheMatrix
但是zmo函数不能这么写。这和python的递归有关,我也不知道为什么。
要写成这样:
但是Python递归深度只能100,所以为了递归深度,还是要改成ugly的loop:

#4 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 17:28
由 TheMatrix
其实reduce也是loop,不影响性能。和递归不同。
但是Python中怎么用reduce的方法,实现一个函数一直循环迭代到条件不再满足而自然退出,我没找到不ugly的办法。问了chatgpt和deepseek,都是用Exception来实现的,很ugly。
其他语言中应该是有的,类似iterate的。
#5 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 17:29
由 TheMatrix
heteroclinic 写了: 2025年 3月 31日 17:16
抽象应该方便normal form吧(我没学过中文词)。说说真么做到low coupling high cohesion的
不懂。
#6 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 17:32
由 heteroclinic
bnf 不是boyle & corile normal form 么,我没有搜。
#7 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 17:40
由 TheMatrix
heteroclinic 写了: 2025年 3月 31日 17:32
bnf 不是boyle & corile normal form 么,我没有搜。
bnf是Backus–Naur form,编译理论的。
你说的是third-normal form,数据库的。
#8 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 17:42
由 heteroclinic
TheMatrix 写了: 2025年 3月 31日 17:40
bnf是Backus–Naur form,编译理论的。
你说的是third-normal form,数据库的。
编译理论那不是应该先写symbol rules.
#9 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 17:47
由 hci
你好这一口,学个Lisp不香么?搞什么python浪费时间。
#10 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 18:45
由 TheMatrix
hci 写了: 2025年 3月 31日 17:47
你好这一口,学个Lisp不香么?搞什么python浪费时间。
lisp我也会。但是我更喜欢python,list comprehension,我觉得比map更舒服。
#11 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 20:10
由 Caravel
简单是简单,看起来头疼啊
#12 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 20:47
由 TheMatrix
Caravel 写了: 2025年 3月 31日 20:10
简单是简单,看起来头疼啊
嗯。也是。
我是看了很多年了。这才越看越顺眼。其实是挺抽象的。
#13 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 21:03
由 hci
list comprehension哪个lisp没有呢?谁说要map呢。
python连个lamda都是跛脚的,还玩什么玩。
你不会Clojure吧?Clojure比这些都好。这就是为啥人们在各种各样的平台上都弄了Clojure,舒服。用别的都觉得太惨了。
TheMatrix 写了: 2025年 3月 31日 18:45
lisp我也会。但是我更喜欢python,list comprehension,我觉得比map更舒服。
#14 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 22:41
由 forecasting
诸位,我最痛恨PERL,其次Python,不想Python这么流行,整个DNN都成了Python的天下。
#15 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 3月 31日 23:12
由 heteroclinic
我在欧洲的时候第一年讲PROLOG,这个不是应该很格调么?
#16 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 4月 1日 17:29
由 TheMatrix
hci 写了: 2025年 3月 31日 21:03
list comprehension哪个lisp没有呢?谁说要map呢。
python连个lamda都是跛脚的,还玩什么玩。
你不会Clojure吧?Clojure比这些都好。这就是为啥人们在各种各样的平台上都弄了Clojure,舒服。用别的都觉得太惨了。
我说会lisp就是Clojure。当然我不是很熟。就是自己学了玩一下。
Clojure里有list comprehension吗?
[f(x) for x in list]这种?
#17 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 4月 1日 17:47
由 hci
Clojure有啊。list comprehension就是`(for [x list] ...)` 呀。
List comprehension还可以嵌套,加条件,有变量啥的,老灵活了。
```
(for [x xs
y ys
:when (= x y)
:let [z (* x x)]
z)
```
TheMatrix 写了: 2025年 4月 1日 17:29
我说会lisp就是Clojure。当然我不是很熟。就是自己学了玩一下。
Clojure里有list comprehension吗?
[f(x) for x in list]这种?
#18 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 4月 1日 18:44
由 Caravel
hci 写了: 2025年 4月 1日 17:47
Clojure有啊。list comprehension就是`(for [x list] ...)` 呀。
List comprehension还可以嵌套,加条件,有变量啥的,老灵活了。
```
(for [x xs
y ys
:when (= x y)
:let [z (* x x)]
z)
```
你是一直鼓吹closure吧?
#19 Re: 正确的抽象,得到简单而优美的代码
发表于 : 2025年 4月 1日 23:57
由 hci
对呀。Clojure
Caravel 写了: 2025年 4月 1日 18:44
你是一直鼓吹closure吧?