对Winter-cn关于函数式编程的文章评论

简介: Winter-cn兄关于程序设计方法论有不少知识。时常写一点自己的观点,如: 函数式编程的杂七杂八(非常乱)   我看完了之后,不太赞同他的某些观点,写下了如此评论: 首先不同意你的如下说法: 引用所以如果你真正希望理解函数式,关键是观念的转变——你必须完全抛弃先后的想法即使是函数式编程,先后还是有的,至于原因,就拿Winter-cn自己的话来反证: 引用任何一个函数都不介意自己的参数被求值的顺序。

Winter-cn兄关于程序设计方法论有不少知识。时常写一点自己的观点,如:

函数式编程的杂七杂八(非常乱)

 

我看完了之后,不太赞同他的某些观点,写下了如此评论:

首先不同意你的如下说法:

引用所以如果你真正希望理解函数式,关键是观念的转变——你必须完全抛弃先后的想法


即使是函数式编程,先后还是有的,至于原因,就拿Winter-cn自己的话来反证:

引用任何一个函数都不介意自己的参数被求值的顺序。
但是任何一个函数不会在自己参数被求值之前执行。
所以 放入(开门(冰箱),大象) 一定会在 开门(冰箱) 之后执行。


这段话至少明确了一点: 任何一个函数不会在自己参数被求值之前执行。你说有没有先后。
至于你说的多个参数情形,理论上多个参数可以同时进行。但是通常实际上不是的,比如编译器固定地先编译或者解释器先解释某个参数。

我对函数式编程的一种可能不是很确切的理解或者表达,函数式编程有点象很多个有名字的盒子,大盒子套小盒子,小盒子里面套更小的盒子。一个盒子里面可以套好几个小盒子。在最外面是一个最大的盒子。装了所有的盒子。对于一个盒子套多个小盒子,顺序取决于装盒子的人,他可以按照他的想法来装,他可以按颜色给盒子排顺序(假如有的话),也可以按大小来排顺序,也可以按重量来排顺序。当然,如果他可以一次同时拿好几个盒子的话,他也可以同时把几个小盒子放进大盒子里面。总之,这个程序的执行,就象装盒子的过程。

最后一句,函数式编程只是表现形式而已。实质才是最重要的。实质是算法。

 

算是表达我自己对函数式的认识。就是用盒子来比喻一个函数,之所以会想到如此比喻,主要是看到一对括号,正好象一个盒子,有着包装的意思。

 

目录
相关文章
|
4月前
|
Java C++ Python
不同语言实现 (5).add(3).minus(2) 功能
本文介绍了如何在Python、Java和C++中实现`(5).add(3).minus(2)`功能。各语言通过定义一个类来包装数字,并提供`add`和`minus`方法支持链式调用,尽管具体语法和实现细节有所差异,但核心思路一致。
|
人工智能
2019 ICPC Asia-East Continent Final(A,M)题解
2019 ICPC Asia-East Continent Final(A,M)题解
78 0
|
传感器 设计模式 人工智能
AI问答:OOP (面向对象编程)、FP (函数式编程)、 FRP (函数响应式编程)、PP(面向过程编程)
AI问答:OOP (面向对象编程)、FP (函数式编程)、 FRP (函数响应式编程)、PP(面向过程编程)
192 0
|
Java 编译器
Java基础深化和提高 ---- 函数式编程 Lambda
Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内 部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作 中,可以极大地优化代码结构。
108 0
Java基础深化和提高 ---- 函数式编程 Lambda
|
安全 Java API
【精通函数式编程】(九) Optional实战大全
本讲了解null的缺陷,了解为什么用Optional 取代null,学习Optional 的必要性,代码里怎么用Optional 才能更优雅
Lambda函数式编程
Java8所有的新特性基本基于函数式编程的思想,函数式编程给Java带来了注入了新鲜的活力。 函数式编程其实并不是很难,小编在学习函数式编程时候刚开始一头雾水,最后仔细观察就发现了其中的小窍门,读了本篇文章如果还没有掌握,就算我输了
161 0
|
前端开发 Java 开发工具
牛逼哄哄的 Lambda 表达式,简洁优雅就是生产力!
牛逼哄哄的 Lambda 表达式,简洁优雅就是生产力!
223 0
牛逼哄哄的 Lambda 表达式,简洁优雅就是生产力!
ZZULIOJ-1007,鸡兔同笼(Java)
ZZULIOJ-1007,鸡兔同笼(Java)
ZZULIOJ-1028, I love 闰年! (Java)
ZZULIOJ-1028, I love 闰年! (Java)
|
算法
一起谈.NET技术,C#4.0新特性-"协变"与"逆变"以及背后的编程思想
  在《上篇》中我们揭示了“缺省参数”的本质,现在我们接着来谈谈C#4.0中另一个重要的新特性:协变(Covariance)与逆变(Contravariance)。对于协变与逆变,大家肯定不会感到陌生,但是我相信有很多人不能很清晰地说出他们之间的区别。
911 0

热门文章

最新文章