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

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

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

1

LOGO


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

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

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

2

入门


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


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

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

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

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

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

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

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

0?wx_fmt=png

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

 

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

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

那么等边三角形呢?

0?wx_fmt=png
由于海龟和等边三角形的夹角并不都是一样的,第一个相差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,我们就可以创建出各种多边形

0?wx_fmt=png
当我们的角度越来越小时:

0?wx_fmt=png
我们将会得到一个圆:

 

REPEAT 360 [FD 3 RT 1]

0?wx_fmt=png
接着,再多重复几次吧

0?wx_fmt=png

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

 

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

4

分形


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


0?wx_fmt=jpeg

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

0?wx_fmt=gif
想象一下这是由一个个FD和RT变成的美妙图形

0?wx_fmt=png

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

感谢西摩尔·派普特!

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部