微信号:phodal-weixin

介绍:在这我会分享我最近的一些编程与生活相关的心得、体会,文章的内容均是原创.我也会推荐一些好玩、有趣的代码.

写在西摩尔·派普特离开之后 | 纪念我的第一门编程语言

2016-08-03 22:17 Phodal


创建Logo语言的人叫西摩尔·派普特,英语:Seymour Papert,出生于1928年3月1日,逝世于2016年7月31日。

今天我才知道正是这个人创建了Logo这门语言,他已经走了,不过他留下了Logo。

1

LOGO


Logo的原型来自另一个计算机语言LISP,派普特修改了LISP的语法使得他更易于阅读。Logo通常被称作没有括号的Lisp

大概在15年前,因为比赛的关系,我学习了这门语言。这是一门非常神奇的语言,而其他语言有一个很大的不同之处在于,它的输出可以变成图形。如下图所示:


这也是我在学习这门语言最后玩的东西——迭归,你可以用递归创造出很美妙的分形。当然,早期我们是在DOS玩这个东西的,所以没有这么炫丽的色彩。

2

入门


于是我又重新了一个Logo语言的环境,然后安装了。在初始化这个程序的时候,这将得到一只海龟和一个画板。



你可以在上面画任何你想要的东西,而且因为它是一个解释型语言,所以我们只需要运行即可。

它有几个基础的命令,这些命令都是基于海龟的头的方向来决定了,这和我们现在世界特别相似。

  • 前进:Forward。画一条向前90单位的直线就是 FD 90或者Forward 90

  • 后台:Back。同Forward一样,只是这个是往后画。

  • 右转:Right。右转角度,如RT 90就是向右转90度。

  • 左转:Left。左转,和右转类似。

用这几个命令,就可以画出基本的几何图型。如矩形:


我们所要做的就只是简单的重复四次:前进120,然后右转90

FD 120 RT 90 FD 120 RT 90 FD 120 RT 90 FD 120 RT 90

不过,Logo里有REPEAT命令,所以这个会变得更加简单。

那么等边三角形呢?


由于海龟和等边三角形的夹角并不都是一样的,第一个相差30度,第二个是120度,而最后要转一个90度。所以它的代码是这样的:

RT 30 FD 200 RT 120 FD 200 RT 120 FD 200 RT 90

而,这个代码要用REPEAT来实现就有一些困难了。

3

REPEAT


REPEAT是我在写这篇文章还记住的几个命令之一(PS:还有一个是HOME,这是我在一次小学比赛中夺冠的最后一个命令。。),它就是重复。如果把上面的正文形用REPEAT来实现就是这样的:

REPEAT 4 [FD 120 RT 90]

五边形的右转角度是72度,所以它就是这样的

REPEAT 5 [FD 120 RT 72]

只要我们的REPEAT次数x角度=360,我们就可以创建出各种多边形


当我们的角度越来越小时:


我们将会得到一个圆:

REPEAT 360 [FD 3 RT 1]


接着,再多重复几次吧

看上去是不是很棒,它只需要这样子

REPEAT 24 [ REPEAT 360 [FD 1 RT 1] RT 15]

4

分形


以前我觉得这个东西看上去挺棒的,就是画起来比较耗脑子,而我多数时候又比较懒。现在,我还是这么觉得的。



并且,如果你有密集恐惧症的话,会更加的可怕。


想象一下这是由一个个FD和RT变成的美妙图形

等等~~(PS:我已经吹不下去了)。

感谢西摩尔·派普特!

最后,问题来了你会不会教你的孩子写代码?

 
phodal 更多文章 学好编程,你还需要这个开源APP | Growth 2.0现已发布 过去24小时里,Growth 2.0有超过2000个用户 《自己动手设计物联网》已在各大书城有售 致JavaScript也将征服的物联网世界 和程序员男友过节是这样的
猜您喜欢 作为官方 Android IDE 的 Android Studio 有什么尿性? 关于Docker你应该知道的8件事 【大数据】电信运营商大数据:深挽弯弓 蓄势待发 深度 | 《Neuron》论文:机器学习助力神经科学的高维数据分析,两者如何相互激励与促进 程序员到底能有多污?我受到了惊吓