- 主题:今天被镇住了:命令编程vs函数编程
是这个道理没错。
你掌握了这个思想之后,即使你是写 shell 命令,或者用 excel,都可以用这样的思想。
【 在 zhanghaoX 的大作中提到: 】
: 比如翻转一棵树。
: 命令编程是左右一个一个给你调换过去。
: 函数编程是直接告诉你,左边是右边,右边是左边。
: 哇塞,这完全是降维打击呀。
: 。
--
修改:flw FROM 27.38.228.*
FROM 27.38.228.*
核心在于,
虽然最终都是转换为一条一条的指令,
但是怎么把问题转换成指令,
命令式语言倾向于让程序员把转换过程想清楚,并且给电脑讲清楚。
而 FP 倾向于让程序员把问题说清楚,然后让编译器自动进行转换。
当然了,编译器也不是神仙,也不能做无米之炊,
所以它就要反过来要求你,让你把问题尽可能具体地说清楚,
而且虽然你可能已经很努力地说清楚了,但编译器常常还会认为你并没有说清楚,
所以编译的时候会给你提一堆的反对意见,让你接着想,仔细想,把问题想清楚。
所以 FP 强调设计,命令式强调实现。
命令式可以有很精巧的实现(想想 C 语言混乱大赛),
但 FP 可以有很精巧的设计。
区别在这。
【 在 pabkyh 的大作中提到: 】
: 能不能给还没完全明白这种思想的讲讲,既然编译后都是转换为一条条的指令
--
FROM 27.38.228.*
理想情况是这样,但实际上因为编译器能力的限制,以及丑陋的真实世界,
最后还是不得不考虑执行过程,但这个过程往往要比命令式语言复杂得多得多得多。
【 在 pabkyh 的大作中提到: 】
: FP 就是说要求程序员对问题的理解要更深刻更抽象,最好能抽象到数学层面,并且不用考虑具体的运算执行过程,只要表达清楚问题的映射关系,是这样吗
--
FROM 27.38.228.*
没错,
关于编程,有一个价值观叫做「看上去明显没有问题」VS「看上去没有明显的问题」
FP 在这方面有绝对的优势。
【 在 snoopyzhao 的大作中提到: 】
: 标 题: Re: 今天被镇住了:命令编程vs函数编程
: 发信站: 水木社区 (Fri Sep 1 09:54:40 2023), 站内
:
:
: 【 在 pabkyh 的大作中提到: 】
: : 那就为了代码看起来简洁一点,问题逻辑更明晰一点而花费那些功夫为了啥呢
:
: 为了你的这个前半句啊,这还不够值得吗?
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 59.172.4.*]
--
FROM 27.38.228.*
总体而言是这样,
但是从趋势来看,FP 已经采取化整为零的方式,
渗透到千家万户了。
现在的命令式语言已经不如 30 年前老实了。
好多 FP 特性满天飞。
【 在 kod2009 的大作中提到: 】
: 所以基本上是命令式编程的天下?毕竟程序员门槛不能太高
--
FROM 27.38.228.*
data Tree a = Leaf a
| Tree (Tree a) (Tree a)
deriving (Show)
reverseTree (Leaf a) = Leaf a
reverseTree (Tree left right) = Tree (reverseTree right) (reverseTree left)
【 在 xeagle 的大作中提到: 】
: 能贴一下具体的代码, 让我感受一下吗?
: 从小被过程式编程毒害太深了, 现在学习函数式编程很费劲.
--
FROM 27.38.228.*