【发布时间】:2014-04-24 10:43:13
【问题描述】:
SICP 第 2.2.4 节描述了一些“图片语言”来构建复杂的图像模式。该语言定义了一个基元 painter 来在给定的框架内绘制图像,并定义了转换和组合 painters 以创建新的 painter 的函数。
我喜欢这个示例,并希望看到更多此类语言的示例(最好在Scheme 中)。我更喜欢系统/业务领域的语言。你知道这些小语言吗?
【问题讨论】:
-
你听说过Logo吗?
-
不,谢谢。我去看看。
-
Logo 是一种编程语言,用于教 6 岁的孩子如何编程。它使用海龟图形来做到这一点。例如,要绘制一个正方形,您将向前移动
x个单位,向右转 90 度,依此类推 4 次。它还通过教孩子们如何教乌龟新命令(即定义函数)来教孩子们抽象。例如,您可以定义一个函数让乌龟画一个正方形和一个三角形,然后使用这些函数让乌龟画一个房子。另外 Logo 与 Lisp 非常相似。它是由 Seymour Papert 在麻省理工学院时创建的。这有帮助吗? -
谢谢。是的,它有帮助。但是,对于系统/业务领域的日常任务,我更喜欢一种小语言。 (我会更新问题)
-
Abelson 说 Lisp* 是一种工具,可以用来解决您的问题。这意味着您可以通过这样做来解决您遇到的所有问题。 (* 他们在视频讲座中称为 Scheme Lisp)