8.16
Link to this document with
@other-doc['(lib "logo/scribblings/logo.scrbl")]
Link to this document with
@other-doc['(lib "logo/scribblings/logo.scrbl")]
1 Logo language🔗ℹ
Link to this section with
@secref["lang" #:doc '(lib "logo/scribblings/logo.scrbl")]
Link to this section with
@secref["lang" #:doc '(lib "logo/scribblings/logo.scrbl")]
1.1 Program grammar🔗ℹ
Link to this section with
@secref["Program_grammar" #:doc '(lib "logo/scribblings/logo.scrbl")]
Link to this section with
@secref["Program_grammar" #:doc '(lib "logo/scribblings/logo.scrbl")]
| ‹program› | ::= | ‹statement›* |
A Logo program is a sequence of statements separated by whitespace.
Comments begin with ; and continue until the end of the line.
1.1.1 Statements🔗ℹ
Link to this section with
@secref["Statements" #:doc '(lib "logo/scribblings/logo.scrbl")]
Link to this section with
@secref["Statements" #:doc '(lib "logo/scribblings/logo.scrbl")]
| ‹statement› | ::= | ‹procedure-definition› |
| | | | ‹procedure-call› |
| | | | if ‹test-expr› ‹block› |
| | | | repeat ‹count-expr› ‹block› |
| ‹block› | ::= | [ ‹statement›* ] |
1.1.2 Procedures🔗ℹ
Link to this section with
@secref["Procedures" #:doc '(lib "logo/scribblings/logo.scrbl")]
Link to this section with
@secref["Procedures" #:doc '(lib "logo/scribblings/logo.scrbl")]
| ‹procedure-definition› | ::= | to
‹identifier›
‹parameter›*
‹statement›*
end |
| ‹procedure-call› | ::= | ‹identifier› ‹arg-expr› |
| ‹parameter› | ::= | an identifier prefixed with : |
1.1.3 Expressions🔗ℹ
Link to this section with
@secref["Expressions" #:doc '(lib "logo/scribblings/logo.scrbl")]
Link to this section with
@secref["Expressions" #:doc '(lib "logo/scribblings/logo.scrbl")]
| ‹expression› | ::= | numeric literal |
| | | | ‹parameter› |
| | | | ‹expression› ‹operator› ‹expression› |
| ‹operator› | ::= | + | - | * | / | = | < | > |
2 Built-in procedures🔗ℹ
Link to this section with
@secref["Built-in_procedures" #:doc '(lib "logo/scribblings/logo.scrbl")]
Link to this section with
@secref["Built-in_procedures" #:doc '(lib "logo/scribblings/logo.scrbl")]
2.1 Turtle graphics🔗ℹ
Link to this section with
@secref["Turtle_graphics" #:doc '(lib "logo/scribblings/logo.scrbl")]
Link to this section with
@secref["Turtle_graphics" #:doc '(lib "logo/scribblings/logo.scrbl")]
Move forward d units.
Move backward d units.
Turn left (anticlockwise) φ degrees.
Turn right (clockwise) φ degrees.
Raise the turtle’s pen so that lines are not drawn when moving.
Lower the turtle’s pen to draw lines.
Return to the origin in a straight line.
Clear the screen.
3 Examples🔗ℹ
Link to this section with
@secref["Examples" #:doc '(lib "logo/scribblings/logo.scrbl")]
Link to this section with
@secref["Examples" #:doc '(lib "logo/scribblings/logo.scrbl")]
The file sierpinski.rkt in this package shows how to
draw a Sierpinski triangle using turtle graphics.