首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Donald Knuth 选择过程式编程而不是函数式编程有什么原因吗?

关于Donald Knuth选择过程式编程而不是函数式编程的原因,这是一个很有趣的问题。Donald Knuth是一位著名的计算机科学家,他在编程领域有着很高的声誉。他的许多著作都是关于计算机编程和算法设计的,其中最著名的就是《计算机程序设计艺术》(The Art of Computer Programming)系列。

在这个问题中,我们可以从以下几个方面来回答:

  1. 过程式编程和函数式编程的概念和特点:

过程式编程是一种面向过程的编程范式,它强调程序的结构和执行顺序。在过程式编程中,程序被组织成一系列的过程或函数,这些过程可以改变程序的状态或环境。函数式编程是一种面向函数的编程范式,它强调函数的纯度和不可变性。在函数式编程中,程序被组织成一系列的函数,这些函数通常没有副作用,并且返回的结果只依赖于输入参数。

  1. 过程式编程和函数式编程的优势和应用场景:

过程式编程适用于需要控制流和状态管理的应用程序,例如操作系统、数据库管理系统等。函数式编程适用于需要并行计算和高度模块化的应用程序,例如数据处理、机器学习等。

  1. 过程式编程和函数式编程的推荐的腾讯云相关产品和产品介绍链接地址:

过程式编程可以使用腾讯云的云服务器产品来实现,例如云服务器CVM和容器服务TKE。函数式编程可以使用腾讯云的Serverless产品来实现,例如云函数SCF和API网关。

总之,Donald Knuth选择过程式编程而不是函数式编程可能是因为他在编写程序时更加关注程序的结构和执行顺序,而不是函数的纯度和不可变性。这种选择可能是基于他的编程经验和对编程范式的理解。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

每个程序员都该知道的五大定律

墨菲定律根本内容是:如果事情有变坏的可能,不管这种可能性多小,它总会发生。即 “凡事可能出错,就一定出错。” 墨菲定律很容易引入软件工程领域。...Knuth 定律 “ 在 (至少大部分) 编程中,过早优化是万恶之源 ” “现代计算机科学的鼻祖”Donald Knuth 曾说 “在 (至少大部分) 编程中,过早优化是万恶之源”。...这条定律是高德纳 (Donald Knuth) 的经典语录之一,它告诫我们不要过早优化应用程序中的代码,直到必须优化时再优化。因为:让正确的程序更快,要比让快速的程序正确容易得多。...优化在刀刃上;优化层次越高越好; 不要过早优化; 依赖性能分析,不是直觉;优化不是万金油,这样优化往往更有意义。...这条定律在软件行业十分出名 举个例子,开发者会花费更多时间到讨论正确缩进或函数命名,不是讨论类的职责或应用架构。

1.2K50

【陆勤阅读】12 位史上最“屌”程序员,他们缔造了整个互联网时代

人们每天使用的App,以及玩儿的电子游戏不是凭空就有的,而是程序员笔耕不辍,靠着他们一行行的代码开发出来的。 当然,那些App应用、网页、甚至是整个互联网本身,都需要依靠平台和硬件来运行。...Torvalds也以“毒舌”闻名,在最近的某个访谈上,一个听众会员询问Torvalds,是否他的这种性格会导致Linux社区会员离开,而他的回答令人惊诧,他说,“你们愿意离开就离开,我不在乎你们。”...3、Donald Knuth ? Donald Knuth在计算机界的学术成就,已经让他被人们称之为“算法分析之父”。...如今,他已经77岁了,Knuth 仍然在编写其多卷大作《计算机编程艺术》,该书最近一版是在2011年发行的。此外,他还是斯坦福大学的名誉退休教授。 4、Brendan Eich ?...最近,Brendan Eich成为了众多争论的源头,他曾在Mozilla公司(开发火狐浏览器的公司)担任首席执行官一职,但是时间却没有太久,因为他曾给美国国家婚姻组织捐款,该组织反对同性恋婚姻,而且也支持加州反同性恋婚姻提案

64370

如今仍在工作的12名最“屌”的程序员

人们每天使用的App,以及玩儿的电子游戏不是凭空就有的,而是程序员笔耕不辍,靠着他们一行行的代码开发出来的。 当然,那些App应用、网页、甚至是整个互联网本身,都需要依靠平台和硬件来运行。...Torvalds也以“毒舌”闻名,在最近的某个访谈上,一个听众会员询问Torvalds,是否他的这种性格会导致Linux社区会员离开,而他的回答令人惊诧,他说,“你们愿意离开就离开,我不在乎你们。”...3、Donald Knuth: Donald Knuth在计算机界的学术成就,已经让他被人们称之为“算法分析之父”。...如今,他已经77岁了,Knuth 仍然在编写其多卷大作《计算机编程艺术》,该书最近一版是在2011年发行的。此外,他还是斯坦福大学的名誉退休教授。...最近,Brendan Eich成为了众多争论的源头,他曾在Mozilla公司(开发火狐浏览器的公司)担任首席执行官一职,但是时间却没有太久,因为他曾给美国国家婚姻组织捐款,该组织反对同性恋婚姻,而且也支持加州反同性恋婚姻提案

71870

Python确实比较慢,但我不在乎

或者换种方式来讲,最重要的是让雇员在规定时间内将程序完成,不是让程序运行速度更快。...)曾经做过关于不同编程语言差异性的深度研究,在研究中,他们对比了Python和其他的脚本/解释性语言,得到的结论是“Python往往是最简洁的语言,甚至匹敌函数编程语言(平均编写时间比其它语言节省1.2...一句话批评了这种行为,很多人认为这句话是Donald Knuth说的,但是他自己说是照搬别人的,那就是:“过早优化是万恶之源” 谈到维护代码库,Donald Knuth的原话是: “在97%的情况下,...从这个逻辑出发,你可以认为,凭借“速度”因素为应用程序选择一个编程语言完全属于过早的优化,你实际选择的是“据说”很快的编程语言,没有去测试、没有理解影响速度的瓶颈是什么。...一种编程语言叫Cython,是Python的一个超集。它可以被粗略的认为是Python和C语言的融合,是一种渐进的语言。

73340

哪本书才是编程领域的“九阴真经”

还有几位说是谭老师的《C语言程序设计》,仔细想想,也算是入门必读书籍,说影响最大也不为。...我曾经花了好几年时间去读 SICP,大概读了三四遍,仔细钻研里面的每一道习题,收获也颇丰,对各种语言现象(递归、CPS、惰性求值、非确定性计算与流处理)、编译器、可计算行问题等了深刻认识。...所以,我们评论一个程序员往往会说他什么软件作品,而且我相信,每个程序员都为写出一个受众广大的软件孜孜不倦。...就像书名所标榜的,它通过采访一系列编程“大家”,像 Donald Knuth、Ken Thompson、Jamie Zawinski、Guy Steele、Peter Norvig 等,讨论这些“大家”...的编程成长史。

35420

博客 | 纽约时报长文:硅谷的尤达—算法大师Donald Knuth

AI科技评论按:Donald Knuth,著名计算机科学家,誉满全球的图灵奖获得者,斯坦福大学计算机系荣誉退休教授。...谷歌研究主管 Peter Norvig 曾说:“这本书就像一本真正的圣经,它很长,也很全面,没有一本书能像它那样全面。”...在暑假期间,Knuth 博士编写编译器赚的钱比当教授一年挣的还多。编译器就像一个翻译器,将高级编程语言(类似于代数)转换为低级编程语言(有时是神秘的二进制),并在转换过程中对其改进。...最终,Knuth 博士自己成为了“编译器”,他无意中开辟了一个新的领域,并称之为“算法分析”,个出版商委托他写一本关于编译器的书,这本书最后成为一本他所知道的所有计算机编程方法的集合,成为了一本关于算法的书...“AI 也是一样,只是这些组合将会基于数据自动完成,不是由程序员来完成。你希望 AI 能够基于数据,将之前的内容组合起来,得到好的结果。但是你必须决定这些内容是什么。

51540

纽约时报长文:硅谷的尤达—算法大师Donald Knuth

AI科技评论按:Donald Knuth,著名计算机科学家,誉满全球的图灵奖获得者,斯坦福大学计算机系荣誉退休教授。...谷歌研究主管 Peter Norvig 曾说:“这本书就像一本真正的圣经,它很长,也很全面,没有一本书能像它那样全面。”...在暑假期间,Knuth 博士编写编译器赚的钱比当教授一年挣的还多。编译器就像一个翻译器,将高级编程语言(类似于代数)转换为低级编程语言(有时是神秘的二进制),并在转换过程中对其改进。...最终,Knuth 博士自己成为了“编译器”,他无意中开辟了一个新的领域,并称之为“算法分析”,个出版商委托他写一本关于编译器的书,这本书最后成为一本他所知道的所有计算机编程方法的集合,成为了一本关于算法的书...“AI 也是一样,只是这些组合将会基于数据自动完成,不是由程序员来完成。你希望 AI 能够基于数据,将之前的内容组合起来,得到好的结果。但是你必须决定这些内容是什么。

48020

高德纳:讲故事停不下来的计算机科学先驱

选自QuantaMagazine 作者:Susan D'Agostino 机器之心编译 参与:熊猫、杜伟 对计算机科学先驱高德纳(Donald Knuth)来说,良好的编程就相当于美好的表达。...「我一种强迫症,它让我产生了对数字离散问题的兴趣。并且,我也很热爱钻研大量信息。」高德纳说。...他预计这一卷至少还有 4 部分,整套书还有 5、6、7 三卷要完成。照片来自高德纳的妻子高精兰(Jill Knuth)。...上大学时他写了一篇短篇小说,里面的每个词都是一个化学。照片来自高德纳的妻子高精兰(Jill Knuth) 上六年级时,我和几个朋友在一台油印机上写了两页的文章,不过内容全是笑话。...举个例子,我写了《Th_5E_4 CH_3EmIC_2Al_2Ca_3P_4Er》,其中每个词都是一个化学。 这是您撰写这部巨著的原因?您是否将其视为又一个故事?

44820

自己动手实现一个malloc内存分配器 | 30图

这就涉及到了分配策略的问题,实际上这里很多的策略可供选择。...Next Fit 该方法是大名鼎鼎的Donald Knuth首次提出来的,如果你不知道谁是Donald Knuth,那么数据结构课上折磨的你痛不欲生的字符串匹配KMP算法你一定不会错过,KMP其中的K就是指...Donald Knuth,该算法全称Knuth–Morris–Pratt string-searching algorithm,如果你也没听过KMP算法那么你一定听过下面这本书: ?...这就是更加大名鼎鼎的《计算机程序设计艺术》,这本书就是Donald Knuth写的,如果你没有听过这本书请面壁思过一分钟,比尔盖茨曾经说,如果你看懂了这本书就去给微软投简历吧,这本书也是很多程序员买回来后从来不会翻一眼只是拿来当做镇宅之宝用的...Knuth老爷子的设计是这样的,我们不是一个信息头header,那么我们就在该内存块的末尾再加一个信息尾,footer,footer一词用的很形象,header和footer的内容是一样的。

1.2K50

程序员优秀之路:一起来看下这 97 位”砖家“能给出啥编程的好建议?(5)

要么就是“”牛奶,要么就是“没有”牛奶,对于作者来说,“牛奶紧缺”意味着“没有”牛奶? 现实中,我们会对很多状态进行模糊的描述,但是在程序员的世界中,这不被允许。...不说了,这位作者又是结对编程的死忠粉~ 不过,个哲学问题可以探讨: 笛卡尔说:“我思故我在”,祖鲁族句谚语:“他人在,故我在”,意味着:与外界的联系和互动,是形成和保持连贯完整的自我印象的重要外在条件...; 推荐一本书 Donald Knuth 的《计算机编程艺术》;拒绝冗长日志 这位作者想说: 大多日志记录根本无用; 分布系统要考虑如何处理外部依赖失败时的日志记录问题; 日志是监控的一部分,记录它...; 终身维护代码 这位作者想说: 编码态度第一,编写代码就好像你必须在你的余生会一直维护它一样; 这种认知会帮你成为一位专家,因为你会去学习设计模式、编写好的注释、测试代码并不断重构、不断扩展; 编的不是代码...编写小函数 这位作者想说: 问题的关键都是一些小函数,它可能只有几行,几个变量,几个操作; 小函数通常回归到一些数学函数; 用小函数写一些测试用例,是解决问题的关键;为他人编写测试 这位作者想说:

34340

给程序员的“错误”找个台阶

说绣花枕头略有些,毕竟任谁都会有一些知识死角。反过来说,还是看我们怎么定义这个问题,到底是不可避免的知识死角还是过于薄弱的基础能力。扬长避短是一种人生,那查漏补缺未尝不是一种更积极的人生态度。...www.uvlist.net/game-164857-Space+Travel 有人因为游戏开发了外挂,有人因为游戏开发了Unix...看来玩游戏并没有那么不堪,换个角度,游戏确实也是用来放松和激发想象力的有效手段,只会机械的编程与咸鱼何分别...不少人以为是Donald的音译,叫人家高纳德,以人家自己的首页为准 https://www-cs-faculty.stanford.edu/~knuth/ 称他为算法之父毫不为,因为我们现在用的数据结构...话是没错,但这和写代码不复用不抽象,就是CopyPaste何区别呢? 笑话一则: 当年Linux之父Linus说:上帝在梦中告诉我,我做出了最优秀的操作系统。 高德纳回答说:我可没这么说。...程序员的工作目标从来不是最快而是最优,工作内容从来不是重复性劳动而是创造性工作。若因为蹩脚的工具、繁冗的流程、糟糕的设计不能忍影响了自己的交付进度,不用怕,程序员就该有程序员的样子! 以上,共勉。

61320

笨办法学 Python · 续 练习 27:`tr`

| tr -cs A-Za-z '\n' | tr A-Z a-z | sort | uniq -c | sort -rn 似乎很炫酷,但是 Doug McIlroy 曾经使用这一行来辩称,高德纳(Donald...Knuth)编写的一个类似的程序太长。...45 分钟的批判 我希望你继续使用45分钟的时间,但是一个对这种工作方式的很大批评:你不能进入扩展的专注流程。在短时间内工作,像这样,在你需要处理大量工作的,以及必须加快步伐时有所帮助。...在这些情况下,您需要一个不同的策略,加快你的工作并让你摆脱困境,不会损耗你的兴致。这就是 45 分钟的时间块的作用。...你喜欢?尝试阐明为什么,然后阅读一些当前的 TDD 的文章,或它的近亲行为驱动开发(BDD)。 你认为通过首先审计你的代码不是逐步构建它,你发现了更多还是更少的缺陷?猜测它,然后写下来。

28910

近乎偏执的完美主义者:高德纳36岁获图灵奖80岁仍在写《计算机程序设计艺术》附简历

最后,套用一句高德纳自传开头的话:“Donald Knuth真的仅仅是一个人吗?”...在计算机科学中,“优化”是一门艺术,这一点可以从另一句Knuth的名言中看出来:“过早优化乃万恶之源。”...一位出版商聘请他写一本关于编译器的书,但最后这本书收录了他所知道的关于计算机编程的方法合集,成为了一本关于算法的书。...他的书一部分名为“谜题与真实世界”。...“AI也是一样,只是这些组合将会基于数据自动完成,不是由程序员来完成。你希望AI能够根据数据将之前的内容组合起来,并得到良好的结果。但是你必须决定这些内容是什么。

1.2K20

关于程序员的59条搞笑但却真实 无比的编程 语录

只有程序员才能理解这些编程语句里的真正内涵。闲言少叙,开始吧… 程序员编程语录 1. 一个好的程序员是那种过单行线马路都要往两边看的人。(Doug Linder) 2. 程序问题时不要担心。...培养员工,即使他们跳槽的风险。什么都不做留他们在公司,这样风险更大。(Anonymous) 18. 计算机科学的目标是做出一个东西,并且保证它至少能坚持到我们将它开发完成。...(Donald Knuth) 软件纠错语录 1. 删除的代码是没有bug的代码。(Jeff Sickel) 2. 如果纠错是消除软件bug的过程,那编程一定是把它们放进去的过程。...当你认为你的代码没有错误时,那就更难了。(Steve McConnel) 软件bug语录 1. 这不是个bug??这一个未注明的功能特征。(Anonymous) 2....(Donald Knuth) 软件产品/成品语录 1. 软件能够复用前,它必须要可用。(Ralph Johnson) 2. 软件通常在beta测试完成不久后发布。

59820

每个程序员都该知道的 5 个定律

Knuth定律 “在(至少大部分)编程中,过早优化是万恶之源。” 这条定律也是 Donald Knuth 的经典语录之一,它告诫我们不要过早优化应用程序中的代码,直到必须优化时再优化。...这条语录强调无论你做的选择是什么,你总会放弃一个或多个选项 但这不是最重要的。 最重要的是理智地做出决定,了解其他选项,清楚你为什么不选择它们。你要始终根据当前你掌握的信息来权衡并做出决定。...的确是这样,人们更愿意把注意力和观点放在他们熟悉的事物上,不是复杂的问题上。 帕金森给出一个例子,一场会议中,成员们讨论两件事:为公司建核反应堆和为员工建车棚。...这条定律在软件行业十分出名,这个故事随后也被称为车棚效应 举个例子,开发者会花费更多时间到讨论正确缩进或函数命名,不是讨论类的职责或应用架构。...但通常 Scrum 演示过程中的讨论会转向琐碎问题,不是审视全局。这些讨论也很重要,但你应该注意权衡更重要更复杂的问题。 一旦你了解这种规律,你将在会议和交流中发觉这种行为。

51180

作为程序员的你在外行人眼里是一个怎样的群体?

“同一款的格子衬衫你 10 件吧”▼ ? “再出 Bug 就拿你来祭天”▼ ? “女程序员都是女汉子”▼ ? “还没有脱发是不是工作不饱和”▼ ?...(Donald Knuth) 4 条软件纠错语录 删除的代码是没有 Bug 的代码。(Jeff Sickel) 如果纠错是消除软件 Bug 的过程,那编程一定是把它们放进去的过程。...当你认为你的代码没有错误时,那就更难了。(Steve McConnel) 5 条软件 Bug 语录 这不是个 Bug——这是一个未注明的功能特征。...(Donald Knuth) 8 条软件产品/成品语录 软件能够复用前,它必须要可用。(Ralph Johnson) 软件通常在 beta 测试完成不久后发布。...(Alan Kay) 身为程序员的您,是否曾经也被误解呢?如果是你,如何向外行解释编程?欢迎底部留言分享!

65390

十本数据结构与算法书籍推荐

第一名 原书名:The Art of Computer Programming 中文名:计算机程序设计艺术 作者:Donald E.Knuth 难度:★★★★★ 个人评价:★★★★★ 推荐程度...不过本书的程序不是用我们熟悉的高级语言描述的,而是作者设计的MIX语言。...作者用图表,伪码解释每一个算法,通俗易懂不失严谨性,英文比较简单,语言流畅,因此,与TAOCP相比,这本书更适合初学者,不要求读者拥有很强的数学背景和丰富的编程经验。...前些年网上不是很流行像“给你10亿个数,找到最大的n个”或者“给你10亿个数,找出现次数最多的那个数”之类的百度面试题?看了此书你就知道怎么解决了。...本书是专为参加一些诸如ACM之类程序设计比赛的同学写的,江湖人称“黑书”。里面讲的都是一些在编程比赛中常用的算法、数据结构,以及一些数论和计算几何等。我虽然并不搞竞赛,但也从此书中受益颇多。

15K61

每个程序员都该知道的 5 个定律 转

Knuth定律 “在(至少大部分)编程中,过早优化是万恶之源。” 这条定律也是 Donald Knuth 的经典语录之一,它告诫我们不要过早优化应用程序中的代码,直到必须优化时再优化。...这条语录强调无论你做的选择是什么,你总会放弃一个或多个选项 但这不是最重要的。 最重要的是理智地做出决定,了解其他选项,清楚你为什么不选择它们。你要始终根据当前你掌握的信息来权衡并做出决定。...的确是这样,人们更愿意把注意力和观点放在他们熟悉的事物上,不是复杂的问题上。 帕金森给出一个例子,一场会议中,成员们讨论两件事:为公司建核反应堆和为员工建车棚。...这条定律在软件行业十分出名,这个故事随后也被称为车棚效应 举个例子,开发者会花费更多时间到讨论正确缩进或函数命名,不是讨论类的职责或应用架构。...但通常 Scrum 演示过程中的讨论会转向琐碎问题,不是审视全局。这些讨论也很重要,但你应该注意权衡更重要更复杂的问题。 一旦你了解这种规律,你将在会议和交流中发觉这种行为。

19920
领券