Мне кажется, что технически оба взаимозаменяемы, но имеют разные условные значения.В чем разница между [] и() скобками в Racket (язык программирования lisp)?
ответ
According to the Racket documentation, нет никакой разницы - есть только условность использовать [
и ]
для cond
положений (и использовать свое суждение для отдыха, насколько я понимаю):
Использование квадратные скобки для условий cond - это соглашение. В Racket скобки и квадратные скобки на самом деле взаимозаменяемы, до тех пор, пока они совпадают (и совпадают). Использование квадратных скобок в нескольких ключевых местах делает код Racket еще более удобочитаемым.
Не имея каких-либо знаний о конструкции языка Ракетка, мое предположение было бы, что квадратные скобки были введены в ответ на жалобы, что многие Лисп выражения трудно читать из-за большого числа одинаковых вида скобок , особенно на концах глубоко вложенных конструкций. Другими словами, это, вероятно, используется, чтобы ваш глаз мог легко установить некоторые точки ссылки в коде, чтобы определить, какую скобку вы закрываете в любой точке.
'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' Дополнительная информация о [Синтаксисе читателя] (https://docs.racket-lang.org/reference/reader.html#%28part._default-readtable-dispatch%29). – Winny