普段、Lisp処理系としてRacketを利用することが多く、見よう見まねでスクリプトを書いています。その中で、Racketでは[]という括弧を利用することが多々あります。具体的にはletcondの中で使われますが、この括弧の挙動が漠然としていて、自分の中でモヤモヤしてしまいます。

具体的なコードを挙げると、下のようになります:

#lang racket
(define (plus-one x)
   (let ([plus-one-x (+ x 1)]) plus-one-x))

(define (fizzbuzz x)
   (cond [(= (modulo x 15) 0) "FizzBuzz"]
         [(= (modulo x 3) 0) "Fizz"]
         [(= (modulo x 5) 0) "Buzz"]
         [else x]))

具体的にDocumentも読んでみたのですが、自分の読解力だと、どのような挙動をするものなのか、いまいちピンと来ません。

この[]の挙動について、具体的にどのような役割と、挙動をするものなのでしょうか?