第18天:我一无所知

“你什么都不知道,乔恩·雪诺。”-权力的游戏伊格里特

今天,我的一部分感觉像乔恩·斯诺(Jon Snow)。 大约在下午3点左右,我在邮件中找到了弗里德曼和费莱森的《小策划者》(一个多星期前我在Bookdepository.com下了订单),男孩的世界越来越大了。 实际上,它是如此之大,以至于我不确定自己的位置。 希望这是暂时的。

这是我下午3点开始的一天:

  • 读完这篇Reddit帖子后,关于这本书将如何帮助您快速进入虚拟现实编程的想法,让我开始感到兴奋。 阅读前言和序言,脸上挂着笑容。 “妈妈,看着我。 这是一本有关编程的技术书。 我有多性感!”
  • 突然跳到书的开头,我的大脑突然停了下来。 “这到底是什么?!”
  • 花了5分钟的时间才意识到作者无意研究其书所依据的Lisp / Scheme的基础知识。 “我是否必须学习一种全新的语言?! 好吧,也许不是,他们在序言中说,练习中只会使用几种方法……”
  • 意识到情况的欢腾,嘲笑自己。 这次 您真的一无所知。”
  • 开始谷歌搜索,偶然发现了由Berkeley.edu维护的大量在线资源。 搜索词是“方案中的原子是什么”。 从第1章开始阅读。 “所有这些代码看起来都很神秘和笨拙……但是这里必须有一些东西。 Paul Graham不是 在Lisp上 建立他的公司Viaweb 吗?”
  • 找出解决此问题的最佳方法是,将我的大脑与Google上的笔记本电脑并行运行。 遇到新语法→谷歌→应用新的概念性理解→做运动→遇到新语法。 “你看! 那是递归!”

我必须承认,这本书看起来像是2至5岁儿童的图画书。 是的!

告诉你,它看起来像是一本儿童图画书。

但书中包含大量的脑力锻炼(到目前为止,可以在脑海中完成),看起来它们旨在帮助任何人掌握计算机科学的基础知识,如计算机如何构造数据,读取列表和识别模式,等等。 我认为“递归”是本书中的一个重要主题,尽管在这一点上我仍然难以理解。

不过,为了让您了解Scheme的语法(Lisp的变体)……

  • “ car l”(其中l是原子列表(abc))返回“ a”。 “汽车”显然是识别某种数组中第一个元素的方法。 与实际的汽车无关。
  • ‘cdr l’,其中l是相同的原子列表(abc)将返回(bc)。 ‘cdr’是识别数组中除第一个数组之外的所有其他内容的方法。 (更多有关这些原语的信息。)
  • C中的“ 4 ==(2 + 2)”在Lisp中表示为“(= 4(+ 2 2))”