Lambda真的增加了代码的可读性吗?

版主: hci

noid2楼主
论坛元老
论坛元老
帖子互动: 535
帖子: 20971
注册时间: 2022年 7月 25日 09:54

#1 Lambda真的增加了代码的可读性吗?

帖子 noid2楼主 »

介绍Lambda好处的文章随处可见,特别是提供了这个功能的编程语言。
其中一个被强调的好处是增加了代码的可读性!!!

我是强烈不同意。

想听听大家的评论。


+1.00 积分 [版主 hci 发放的奖励]
笑口常开,常笑人间可笑之人事
只谈逻辑,不谈政治
我来这不是教育廊庑的,而是提醒傻博士不要上当受骗的。
中国有历史,中国人没有,一周记忆而已。
头像
mmking(上水)
论坛支柱
论坛支柱
帖子互动: 1800
帖子: 13121
注册时间: 2023年 1月 25日 05:10

#2 Re: Lambda真的增加了代码的可读性吗?

帖子 mmking(上水) »

以后不用读代码了

又开赌盘了,看看川宝会不会反对台湾独立:viewtopic.php?t=880584

凡所有相,皆是虚妄

viewtopic.php?t=864957

图片

头像
hci(海螺子)
论坛支柱
论坛支柱
帖子互动: 538
帖子: 10430
注册时间: 2022年 7月 22日 15:29

#3 Re: Lambda真的增加了代码的可读性吗?

帖子 hci(海螺子) »

什么lambda?

Python的lambda?还是别的?

lambda就是个函数。函数式编程一般来说是会让代码逻辑更清楚,适合高层应用程序。

noid2 写了: 2025年 10月 27日 16:35

介绍Lambda好处的文章随处可见,特别是提供了这个功能的编程语言。
其中一个被强调的好处是增加了代码的可读性!!!

我是强烈不同意。

想听听大家的评论。

wildthing
著名点评
著名点评
帖子互动: 290
帖子: 4579
注册时间: 2022年 7月 22日 14:25

#4 Re: Lambda真的增加了代码的可读性吗?

帖子 wildthing »

noid2 写了: 2025年 10月 27日 16:35

介绍Lambda好处的文章随处可见,特别是提供了这个功能的编程语言。
其中一个被强调的好处是增加了代码的可读性!!!

我是强烈不同意。

想听听大家的评论。

You are talking about the benefits of functional programming. If you don't understand this, you have a lot to study.

司马光在《资治通鉴》中说日本人:'知小礼而无大义,拘小节而无大德。重末节而无廉耻,畏威而不怀德。强必盗寇,弱必卑伏'。
康熙皇帝在《康熙朝起居注》中这样评论日本人:“倭子国,最是反复无常之国。其人,甚卑贱,不知世上有恩谊,只一味慑于武威……故尔,不得对其有稍许好颜色。”

图片
noid2楼主
论坛元老
论坛元老
帖子互动: 535
帖子: 20971
注册时间: 2022年 7月 25日 09:54

#5 Re: Lambda真的增加了代码的可读性吗?

帖子 noid2楼主 »

wildthing 写了: 2025年 10月 27日 17:28

You are talking about the benefits of functional programming. If you don't understand this, you have a lot to study.

我知道面向对象编程当时也是被吹的神乎其神,能解决编程的一切问题。

笑口常开,常笑人间可笑之人事
只谈逻辑,不谈政治
我来这不是教育廊庑的,而是提醒傻博士不要上当受骗的。
中国有历史,中国人没有,一周记忆而已。
wildthing
著名点评
著名点评
帖子互动: 290
帖子: 4579
注册时间: 2022年 7月 22日 14:25

#6 Re: Lambda真的增加了代码的可读性吗?

帖子 wildthing »

noid2 写了: 2025年 10月 27日 21:03

我知道面向对象编程当时也是被吹的神乎其神,能解决编程的一切问题。

当然没有什么神秘的。更谈不上神乎其神
这不过是基础知识

你提到的是 Higher order function, first class function value, and functional programming in general.
没有什么东西是绝对的。
Functional programming 有好的一面也有烦人的一面

你问的这个问题表明你并不了解问题的本质,所以我说你要学习一下

这有点和民科谈量子力学一样。当然区别没有那么大了。

司马光在《资治通鉴》中说日本人:'知小礼而无大义,拘小节而无大德。重末节而无廉耻,畏威而不怀德。强必盗寇,弱必卑伏'。
康熙皇帝在《康熙朝起居注》中这样评论日本人:“倭子国,最是反复无常之国。其人,甚卑贱,不知世上有恩谊,只一味慑于武威……故尔,不得对其有稍许好颜色。”

图片
noid2楼主
论坛元老
论坛元老
帖子互动: 535
帖子: 20971
注册时间: 2022年 7月 25日 09:54

#7 Re: Lambda真的增加了代码的可读性吗?

帖子 noid2楼主 »

wildthing 写了: 2025年 10月 27日 21:24

当然没有什么神秘的。更谈不上神乎其神
这不过是基础知识

你提到的是 Higher order function, first class function value, and functional programming in general.
没有什么东西是绝对的。
Functional programming 有好的一面也有烦人的一面

你问的这个问题表明你并不了解问题的本质,所以我说你要学习一下

这有点和民科谈量子力学一样。当然区别没有那么大了。

增加代码的可读性了吗?

笑口常开,常笑人间可笑之人事
只谈逻辑,不谈政治
我来这不是教育廊庑的,而是提醒傻博士不要上当受骗的。
中国有历史,中国人没有,一周记忆而已。
头像
hci(海螺子)
论坛支柱
论坛支柱
帖子互动: 538
帖子: 10430
注册时间: 2022年 7月 22日 15:29

#8 Re: Lambda真的增加了代码的可读性吗?

帖子 hci(海螺子) »

增加了。

我十几年前就在这个版上说了,函数式编程更高层,更接近人的思考,更远离机器的实现。这个事实被越来越多的人认识到了。这其实就是编程的历史所显示出的发展方向。

现在用AI编程,更是往这个方向迈了一大步,几乎都不用直接写代码了。

noid2 写了: 2025年 10月 28日 00:05

增加代码的可读性了吗?

pinfish
论坛支柱
论坛支柱
帖子互动: 516
帖子: 11017
注册时间: 2022年 7月 23日 23:56

#9 Re: Lambda真的增加了代码的可读性吗?

帖子 pinfish »

lambda calculus = turing machine..
原则上一个编程语言只需要一个函数,就是lambda

noid2 写了: 2025年 10月 27日 21:03

我知道面向对象编程当时也是被吹的神乎其神,能解决编程的一切问题。

noid2楼主
论坛元老
论坛元老
帖子互动: 535
帖子: 20971
注册时间: 2022年 7月 25日 09:54

#10 Re: Lambda真的增加了代码的可读性吗?

帖子 noid2楼主 »

hci 写了: 2025年 10月 28日 02:23

增加了。

我十几年前就在这个版上说了,函数式编程更高层,更接近人的思考,更远离机器的实现。这个事实被越来越多的人认识到了。这其实就是编程的历史所显示出的发展方向。

现在用AI编程,更是往这个方向迈了一大步,几乎都不用直接写代码了。

30年前吹OO时也是这么说的

笑口常开,常笑人间可笑之人事
只谈逻辑,不谈政治
我来这不是教育廊庑的,而是提醒傻博士不要上当受骗的。
中国有历史,中国人没有,一周记忆而已。
头像
hci(海螺子)
论坛支柱
论坛支柱
帖子互动: 538
帖子: 10430
注册时间: 2022年 7月 22日 15:29

#11 Re: Lambda真的增加了代码的可读性吗?

帖子 hci(海螺子) »

OOP没有什么理论基础。其发明者Alan Kay,图灵奖得主,与Clojure的发明人Rich Hickey,一个学音乐的,两人辩论,Kay还辩不过。为啥,因为OOP没有什么深度,本质就是一个基于仿真的比较随意的主意,适用于某些领域,如此而已。

函数式编程比OOP要古老,是有强大理论基础的,不仅仅是一个随意的主意。上面有人说了,lambda calculus是与图灵机是等价的,所以从理论上说,lambda is all you need.

noid2 写了: 2025年 10月 28日 11:09

30年前吹OO时也是这么说的

上次由 hci 在 2025年 10月 28日 11:29 修改。
原因: 未提供修改原因
noid2楼主
论坛元老
论坛元老
帖子互动: 535
帖子: 20971
注册时间: 2022年 7月 25日 09:54

#12 Re: Lambda真的增加了代码的可读性吗?

帖子 noid2楼主 »

hci 写了: 2025年 10月 28日 11:28

OOP没有什么理论基础。其发明者Alan Kay,图灵奖得主,与Clojure的发明人Rich Hickey,一个学音乐的,两人辩论,Kay还辩不过。为啥,因为OOP没有什么深度,本质就是一个基于仿真的比较随意的主意,适用于某些领域,如此而已。

函数式编程比OOP要古老,是有强大理论基础的,不仅仅是一个随意的主意。上面有人说了,lambda calculus是与图灵机是等价的,所以从理论上说,lambda is all you need.

C算函数编程不?
Fortran?

笑口常开,常笑人间可笑之人事
只谈逻辑,不谈政治
我来这不是教育廊庑的,而是提醒傻博士不要上当受骗的。
中国有历史,中国人没有,一周记忆而已。
头像
hci(海螺子)
论坛支柱
论坛支柱
帖子互动: 538
帖子: 10430
注册时间: 2022年 7月 22日 15:29

#13 Re: Lambda真的增加了代码的可读性吗?

帖子 hci(海螺子) »

都不算呀。

C不是被认为是一种人类可读的汇编语言么?

noid2 写了: 2025年 10月 28日 11:41

C算函数编程不?
Fortran?

noid2楼主
论坛元老
论坛元老
帖子互动: 535
帖子: 20971
注册时间: 2022年 7月 25日 09:54

#14 Re: Lambda真的增加了代码的可读性吗?

帖子 noid2楼主 »

hci 写了: 2025年 10月 28日 12:03

都不算呀。

C不是被认为是一种人类可读的汇编语言么?

Fortran 远离汇编啊

笑口常开,常笑人间可笑之人事
只谈逻辑,不谈政治
我来这不是教育廊庑的,而是提醒傻博士不要上当受骗的。
中国有历史,中国人没有,一周记忆而已。
wildthing
著名点评
著名点评
帖子互动: 290
帖子: 4579
注册时间: 2022年 7月 22日 14:25

#15 Re: Lambda真的增加了代码的可读性吗?

帖子 wildthing »

noid2 写了: 2025年 10月 28日 00:05

增加代码的可读性了吗?

当然增加可读性。Below is quicksort in Scala in functional style. It is more readable to me but not necessarily to others.

def sort(xs: Array[Int]): Array[Int] = {
if (xs.length <= 1) xs
else {
val pivot = xs(xs.length / 2)
Array.concat(sort(xs filter (pivot >)), xs filter (pivot ==), sort(xs filter (pivot <)))
}
}

上次由 wildthing 在 2025年 10月 28日 12:11 修改。
司马光在《资治通鉴》中说日本人:'知小礼而无大义,拘小节而无大德。重末节而无廉耻,畏威而不怀德。强必盗寇,弱必卑伏'。
康熙皇帝在《康熙朝起居注》中这样评论日本人:“倭子国,最是反复无常之国。其人,甚卑贱,不知世上有恩谊,只一味慑于武威……故尔,不得对其有稍许好颜色。”

图片
magagop
著名点评
著名点评
帖子互动: 247
帖子: 3518
注册时间: 2024年 12月 5日 17:35

#16 Re: Lambda真的增加了代码的可读性吗?

帖子 magagop »

noid2 写了: 2025年 10月 28日 11:41

C算函数编程不?
Fortran?

C++算部分函數式,C不是,Fortran不懂

magagop
著名点评
著名点评
帖子互动: 247
帖子: 3518
注册时间: 2024年 12月 5日 17:35

#17 Re: Lambda真的增加了代码的可读性吗?

帖子 magagop »

noid2 写了: 2025年 10月 27日 16:35

介绍Lambda好处的文章随处可见,特别是提供了这个功能的编程语言。
其中一个被强调的好处是增加了代码的可读性!!!

我是强烈不同意。

想听听大家的评论。

lambda是C++11的精髓,也叫匿名函數,確實增加可讀性,但debug更困難。

noid2楼主
论坛元老
论坛元老
帖子互动: 535
帖子: 20971
注册时间: 2022年 7月 25日 09:54

#18 Re: Lambda真的增加了代码的可读性吗?

帖子 noid2楼主 »

wildthing 写了: 2025年 10月 28日 12:10

当然增加可读性。Below is quicksort in Scala in functional style. It is more readable to me but not necessarily to others.

def sort(xs: Array[Int]): Array[Int] = {
if (xs.length <= 1) xs
else {
val pivot = xs(xs.length / 2)
Array.concat(sort(xs filter (pivot >)), xs filter (pivot ==), sort(xs filter (pivot <)))
}
}

你这只是一种用法。

笑口常开,常笑人间可笑之人事
只谈逻辑,不谈政治
我来这不是教育廊庑的,而是提醒傻博士不要上当受骗的。
中国有历史,中国人没有,一周记忆而已。
noid2楼主
论坛元老
论坛元老
帖子互动: 535
帖子: 20971
注册时间: 2022年 7月 25日 09:54

#19 Re: Lambda真的增加了代码的可读性吗?

帖子 noid2楼主 »

magagop 写了: 2025年 10月 28日 12:13

lambda是C++11的精髓,也叫匿名函數,確實增加可讀性,但debug更困難。

Debug困难就是可读性差啊

笑口常开,常笑人间可笑之人事
只谈逻辑,不谈政治
我来这不是教育廊庑的,而是提醒傻博士不要上当受骗的。
中国有历史,中国人没有,一周记忆而已。
magagop
著名点评
著名点评
帖子互动: 247
帖子: 3518
注册时间: 2024年 12月 5日 17:35

#20 Re: Lambda真的增加了代码的可读性吗?

帖子 magagop »

noid2 写了: 2025年 10月 28日 12:16

Debug困难就是可读性差啊

調試困難和可讀性差是兩回事。。。這也算C++的通病

回复

回到 “葵花宝典(Programming)”