Donald Knuth 说:『选择 WEB 作为名字,部分因为它是英语中很少的几个没有用于计算机的三字词语之一。但随着时间流逝,我越来越喜爱这个名字,因为我认为最好把一个复杂的软件确确实实地看成由简单材料以精巧的方式拼出来的一张网。我们通过理解复杂系统的各个简单部分和这些部分与其直接邻居的简单关系来理解复杂系统...
文学编程的思想非常简单,就是将那些为了能被编译器/解释器正确识别而编写的代码打碎,然后用人类语言将它们编织到文档中,这种文档就是文学编程的源文件。这一概念第一次被完整的实现,是 Knuth 开发的 WEB 工具(此 WEB 并非现代漫天飞舞的那个 Web)。Knuth 的神作——TeX 系统便是借助 WEB 开发的。
听起来是要破记录,我要讲讲函子:简单又强大的主意。范畴论中充满了这样简单又强大的主意。函子是范畴之间的映射。给定的两个范畴,C 与 D,函子 F 可以将 C 中的对象映射为 D 中的对象——函子是对象上的函数。如果 C 中有一个对象 a,它在 D 中的像即为 F a(省略了括号)。但是范畴中不仅仅存在对象,还有连接对象的态...
上一篇文章,即《写向程序猿的范畴论》的序言,发布之后得到的正面反馈让我有些不知所措。同时,它也激励了我,因为我感受到了大家付诸于我的殷切期望。不过,我担心的是无论我如何努力,依然众口难调。有些读者希望这本书偏于现实,有些人则希望它能抽象一些。有些憎恨 C++ 的人希望所有的示例都是 Haskell 的,而那些...
来我们这个实验室里读研的学生可能自从来到这里的第一天就觉得自己的命运很苦逼。他们读本科时主修的是机械设计、制造以及自动化之类的专业,毕业时的简历上也顶多是写写擅长 MS Word、PowerPoint、UGNX、AutoCAD 之类的应用软件。他们有限的学习生涯里,怎么也不会想到来到这里竟然要首先重新学习 C 语言,然后还要学 C...
对于理工科背景的人而言,无论是 Web x.0 的时代,对应的网站都应该支持数学公式。所以,QQ 不支持数学公式,就没必要用 QQ;微信不支持数学公式,就没必要用微信;微博不支持数学公式,就没必要用微博……然而这一切都要归罪于 HTML 的发明者,理工科的专家发明的东西居然不支持数学公式……虽然有个 MATHML,但基本上形同...
无论你使用过多少/多久其他的 Linux 发行版,初次接触 Gentoo 时,极有可能会觉得它在软件包的安装方面很神奇。若要在 Gentoo 中安装一个软件包,通常要定义如何进行软件源代码包的下载、解包、打补丁、编译、安装以及合并。为了实现对软件包进行细微的定制,还需要定义一些有用的元数据(即 USE 旗标)、补丁文件以及一...
当 Google 刚推出在线办公软件的时候,许多人就开始准备昂首挺胸的进入云计算/云服务时代了。当 google 推出 Chrome OS 系统的时候,许多人赞叹在一个像浏览器的系统中就可以做很多传统桌面的事情了。当 Apple 的 ipad 和 iphone 大行其道的时候,热衷于谈论云计算的人越来越多。就像当年的大型机降格为 PC 一样,无数人...
也许在你开始尝试使用 Linux 时,已经看到了很多对 Linux 不利的言论。例如,发行版本太多难以取舍、安装繁琐、应用程序没那么多、装显卡驱动很痛苦、无线网卡点不亮、声卡沉默着、中文输入法又在 Emacs 里歇菜了……然而 Linux 已经在这个世界上存在了,即使它存在这样或那样的问题,它依然没有死掉,更何况在 Linux 中去...