People who know some Scheme are often surprised to see square brackets
in PLT Scheme programs. They have the same meaning as regular
parentheses in Scheme. They provide a bit of visual distinction
and are often used by PLT Scheme programmers to differentiate clauses
in conditional constructs. For example, you'll often see cond clauses
written as below.
(define (display-typex)
(cond
[(number?x) (display"It's a number!")]
[(string?x) (display"It's a string!")]
[else (display"It's something else!")]))
The local form is used in some textbooks, most notably "How
To Design Programs", see HTDP on the local form.
local is standard in the Pretty Big languages as well as the teaching languages. It's also provided as a standard library module in (lib "etc.ss"). Here's an example: