Racket / vs - для разделителей идентификаторов

Большую часть времени в шепелявых (включая рэкет) - используется в identifier-delimiters. Я просматривал руководство по рэкету и обнаружил, что контракты используют / в качестве разделителей, например, в define/delimiter. В clojure / используется для пространства имен, но в racket / - допустимый символ идентификатора.

Итак, вопрос: по какой причине он назвал его define/contract vs define-contract. Есть ли соглашение, о котором я не знаю, когда использовать /.

Спасибо!


person spelufo    schedule 09.12.2014    source источник


Ответы (2)


/ - это сокращение от «с».

Это руководство содержит список условных обозначений. Однако соглашения / нет в таблице.

http://www.ccs.neu.edu/home/matthias/Style/style/Textual_Matters.html#%28part._names%29

person soegaard    schedule 09.12.2014
comment
Используется для исключений. Он также используется для импорта имен из модуля, чтобы избежать конфликтов имен. Например, если вы определяете свои собственные функции с помощью списка имен и по-прежнему хотите использовать оригинал. Затем (require (prefix-in racket: racket)) импортирует имена из racket с префиксом. Теперь вы можете использовать racket: list, чтобы получить оригинал. - person soegaard; 09.12.2014

Ответ Йенса правильный, / - это сокращение от «с». Это закреплено в стандартах схем R6RS и R7RS, где call/cc - это краткое имя для call-with-current-continuation. (R5RS упоминает это, но формально не стандартизировал имя, как это сделали R6RS и R7RS.)

Мой номер автомобиля CALL / CC

person Chris Jester-Young    schedule 09.12.2014