元のスクリプトは次のようになります。
#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)
このグラフを描画します。
それを行う最善の方法を知っている人はいますか?