web-dev-qa-db-ja.com

Racket(LISPプログラミング言語)の[]括弧と()括弧の違いは何ですか?

技術的には両方とも互換性があるように見えますが、従来の意味は異なります。

16
Mahathi Vempati

Racketのドキュメントによると 違いはありません-cond句に[]を使用する(そしてあなたの判断を使用する)規則だけがあります残りは、私が理解している限り):

Cond句に角括弧を使用するのは慣例です。 Racketでは、(が)と[が]と一致する限り、括弧と角括弧は実際には交換可能です。いくつかの重要な場所で角かっこを使用すると、Racketコードがさらに読みやすくなります。

ラケット言語の設計についての知識がなければ、特にの末尾に同じように見える括弧が多数あるために多くのLISP式が読みにくいという苦情への対応として、角括弧が導入されたと思います。深くネストされた構造。言い換えると、これはおそらく、コード内のいくつかの参照ポイントを簡単に確立して、任意のポイントで閉じているブラケットを識別するために使用されます。