5
在我看來,技術上兩者是可以互換的,但具有不同的常規含義。Racket(lisp編程語言)中的[]和()括號有什麼區別?
在我看來,技術上兩者是可以互換的,但具有不同的常規含義。Racket(lisp編程語言)中的[]和()括號有什麼區別?
According to the Racket documentation,沒有任何區別 - 只有用於cond
條款[
和]
(和使用你的判斷其餘的,據我瞭解)一個約定:
採用cond子句的方括號是一個約定。在球拍中,括號和方括號實際上是可以互換的,只要(與之匹配)和[與之匹配]。在幾個關鍵位置使用方括號使Racket代碼更具可讀性。
沒有任何有關Racket語言設計的知識,我的猜測是引入方括號作爲對許多Lisp表達式難以閱讀的反應的迴應,因爲大量相同外觀的括號特別是在深度嵌套結構的末端。換句話說,它可能用於讓您的眼睛輕鬆地在代碼中建立一些參考點,以確定您在任何給定點處關閉的支架。
'{'和'}'也是括號的另一個等價物,但鼓勵用於特定用例(如預製結構文字)。有關[Reader語法]的更多信息(https://docs.racket-lang.org/reference/reader.html#%28part._default-readtable-dispatch%29)。 – Winny