`[]`という括弧の役割とその挙動がよくわからない


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

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

[code]

    #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]))
    
[/code]

具体的に[Document](http://docs.racket-lang.org/reference/eval-
model.html#%28part._.Tail_.Position%29)も読んでみたのですが、自分の読解力だと、どのような挙動をするものなのか、いまいちピンと来ません。

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




SchemeのR6RSでは、()と[]は同様に利用できるため、まとまりを強調したりするのに使えます。

使い分けについて:  
* Use of square brackets: <http://www.r6rs.org/final/html/r6rs-app/r6rs-app-Z-H-5.html#node_chap_C>  
* Gauche ユーザーリファレンス: <http://practical-scheme.net/gauche/man/gauche-refj_22.html>

Racketは、R6RSをベースにしたScheme方言という形で枝分かれしましたが、独自拡張で、{}も使えるのだと思います。




SchemeのR6RSでは、()と[]は同様に利用できるため、まとまりを強調したりするのに使えます。

使い分けについて:  
* Use of square brackets: <http://www.r6rs.org/final/html/r6rs-app/r6rs-app-Z-H-5.html#node_chap_C>  
* Gauche ユーザーリファレンス: <http://practical-scheme.net/gauche/man/gauche-refj_22.html>

Racketは、R6RSをベースにしたScheme方言という形で枝分かれしましたが、独自拡張で、{}も使えるのだと思います。

