展开讨论

经验与复盘经验摘录 · 机器翻译

当然,既然我们已经听说过这个概念,我们都会自认为足够聪明……

……既然我们已经听说过这个概念,我们都会自认为足够聪明,能在不到三十年的时间内弄清楚。但当我们这样做时,我们只是在欺骗自己。即使是最聪明的人,也不如我们所有人一起的智慧。你无法独立地重新发现各个编程社区数十年来所发现的一切。如果你想了解最聪明的人在没有参考他人数十年经验的情况下能做些什么,你可以看看20世纪80年代和90年代的计算机编程状况,如果你愿意的话。我认为我们从那时起学到了很多,现代程序员和20世纪80年代程序员之间的差距并不在于他们的智商或其他类似因素,而在于他们增加的集体社区经验。……

源讨论我用了15年时间才学会Haskell原帖 237 条评论 · 导入时统计
3

这条内容在回应什么?

父级讨论 · 节选

WR

今天的激进观点:你用命令式编程也能学到这些。 我在15年前就熟悉函数式编程,能够编写Scheme和Haskell代码。我读过经典著作,理解高级类型、lambda演算等等。我现在使用的最好的“函数式编程”是闭包,以func.bind(this[, first])的形式进行柯里化,以及map/filter。这些都是可以通过闭包学到的,闭包很有用,但我也可以没有它们。有时候没有这些反而让你写出真正有效的代码,而不是花好几个小时去摆弄它的形式。 我仍然在等待之前写的那些晦涩难懂的函数式代码带来的回报。我无法认出或理解我曾经保存在版本控制中的任何用这种风格写的项目。命令式代码读起来像散文,我有些代码从2010年一直用到现在。 我认为这些函数式编程的讨论本质上是一种伪装成精英主义的说教(不一定是恶意的)。β约简…

完整原文

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 3

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

WR

这可能是对的,甚至很可能就是如此。但函数式编程(FP)的表达方式大多是由那些只掌握了一半的人来完成的,这给人的印象是FP是一种更好的编程方式,而实际上它只是由一些晦涩的语言所决定的混合方法(从商业角度来看)。最糟糕的是,它无法直接转换到任何非小众的语言中,由于惯性的作用,这会导致混乱。至少,这是我对于FP“招募”经历的体会。 我真希望我完全跳过这次FP之旅,而是直接学习如何构建自己的程序。这或许能让我节省一到五年的时间。也许没有更好的方法,但在实际中,清晰的解释总是比这些神秘的教导更好,那些教导只是让你不断重复直到自己领悟。

完整原文
CE

“理论上来说,你可以掌握你的一种语言,比如Java,在正常的职业生涯中学习在该语言中以最佳方式编程所需的一切。” 好的,那你应该了解柯里化、不可变数据结构、map/reduce/filter等等。 因为Java很早就有了这些。我认为没有真正的闭包,但这关系不大,因为匿名函数基本上能满足你的需求,如果你真的想要其他东西,你可能自己也能发明出闭包。

完整原文
SK

> FP 在函数的纯粹性、小部件组合的实用性、小部件组合的灵活性、处理无法以这种方式处理的程序部分的方法,以及提供了一个存在性证明,说明尽管面向过程的程序员可能认为不可能,但实际上在系统架构层面以这种方式编程是可能的。 除此之外,对我而言,它还让我意识到,在大型复杂代码库中,以系统化而非临时应对的方式,消除整个类别的错误实际上是可能的。在发现函数式编程之前,特别是 Haskell 的类型系统,我曾花费大量精力尝试通过测试驱动开发(TDD)和越来越复杂的 try/catch/throw 错误处理来实现这一点。发现 Haskell 的编译器、类型系统以及单子对效果的隔离,使之前的所有努力都变得过时了,这对我来说是一个巨大的启发。…

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。