分页: 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
TheMatrix 写了: 2025年 3月 31日 17:17 图片
其实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浪费时间。
TheMatrix 写了: 2025年 3月 31日 17:09 图片

#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吧?