设计一个解释器重写该脚本的原始脚本是这样的:在球拍
#lang racket
(for ([i (in-range 3)])
(for ([j (in-range 9)])
(display "X"))
(display "\n"))
(for ([i (in-range 6)])
(for ([j (in-range 3)])
(display " "))
(for ([j (in-range 3)])
(display "X"))
(for ([j (in-range 3)])
(display " "))
(display "\n"))
(for ([i (in-range 3)])
(for ([j (in-range 9)])
(display "X"))
(display "\n"))
输出是:
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
XXX
XXX
XXX
XXX
XXX
XXX
XXXXXXXXX
XXXXXXXXX
XXXXXXXXX
我不知道我是否可以使用像DSL重写这个这样的:
(define a
"3 9 X
6 3 b 3 X 3 b
3 9 X")
然后:
(interpret a)
绘制此图。
有谁知道什么是最好的方法来做到这一点?
我不会通过举例来描述DSL。实际显示语法或类似的东西会更有用。 –
数字列表和“X”和“b”会比字符串更加自然。 – erjiang
Firegun:你对下面的答案有任何疑问或疑问吗?只是跟进这一点。 – dyoo