分页: 1 / 2

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

发表于 : 2025年 10月 27日 16:35
noid2

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

我是强烈不同意。

想听听大家的评论。


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

发表于 : 2025年 10月 27日 16:35
mmking

以后不用读代码了


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

发表于 : 2025年 10月 27日 17:25
hci

什么lambda?

Python的lambda?还是别的?

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

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

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

我是强烈不同意。

想听听大家的评论。


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

发表于 : 2025年 10月 27日 17:28
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.


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

发表于 : 2025年 10月 27日 21:03
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.

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


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

发表于 : 2025年 10月 27日 21:24
wildthing
noid2 写了: 2025年 10月 27日 21:03

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

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

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

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

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


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

发表于 : 2025年 10月 28日 00:05
noid2
wildthing 写了: 2025年 10月 27日 21:24

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

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

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

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

增加代码的可读性了吗?


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

发表于 : 2025年 10月 28日 02:23
hci

增加了。

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

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

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

增加代码的可读性了吗?


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

发表于 : 2025年 10月 28日 02:30
pinfish

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

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

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


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

发表于 : 2025年 10月 28日 11:09
noid2
hci 写了: 2025年 10月 28日 02:23

增加了。

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

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

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


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

发表于 : 2025年 10月 28日 11:28
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时也是这么说的


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

发表于 : 2025年 10月 28日 11:41
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?


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

发表于 : 2025年 10月 28日 12:03
hci

都不算呀。

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

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

C算函数编程不?
Fortran?


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

发表于 : 2025年 10月 28日 12:06
noid2
hci 写了: 2025年 10月 28日 12:03

都不算呀。

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

Fortran 远离汇编啊


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

发表于 : 2025年 10月 28日 12:10
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 <)))
}
}


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

发表于 : 2025年 10月 28日 12:11
magagop
noid2 写了: 2025年 10月 28日 11:41

C算函数编程不?
Fortran?

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


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

发表于 : 2025年 10月 28日 12:13
magagop
noid2 写了: 2025年 10月 27日 16:35

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

我是强烈不同意。

想听听大家的评论。

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


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

发表于 : 2025年 10月 28日 12:14
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 <)))
}
}

你这只是一种用法。


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

发表于 : 2025年 10月 28日 12:16
noid2
magagop 写了: 2025年 10月 28日 12:13

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

Debug困难就是可读性差啊


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

发表于 : 2025年 10月 28日 12:19
magagop
noid2 写了: 2025年 10月 28日 12:16

Debug困难就是可读性差啊

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