Syntax 球拍/vs-用于标识符分隔符

Syntax 球拍/vs-用于标识符分隔符,syntax,racket,convention,Syntax,Racket,Convention,lisps(包括racket)中的大部分时间-用于标识符分隔符。我在浏览《球拍指南》时发现,合同使用/作为定界符,例如在定义/定界符中。在clojure中,/用于名称空间,但在racket中,/是有效的标识符字符 所以问题是:将其命名为define/contractvsdefine contract的原因是什么。关于何时使用/,是否有我不知道的约定 谢谢 The/是“with”的缩写 本指南包含一系列约定。不过,该/惯例不在表中 詹斯的回答是正确的,/是“with”的缩写。这已写入R6RS和R7

lisps(包括racket)中的大部分时间
-
用于
标识符分隔符。我在浏览《球拍指南》时发现,合同使用
/
作为定界符,例如在
定义/定界符
中。在clojure中,
/
用于名称空间,但在racket中,
/
是有效的标识符字符

所以问题是:将其命名为
define/contract
vs
define contract
的原因是什么。关于何时使用
/
,是否有我不知道的约定

谢谢

The/是“with”的缩写

本指南包含一系列约定。不过,该/惯例不在表中


詹斯的回答是正确的,
/
是“with”的缩写。这已写入R6RS和R7RS方案标准,其中,
call/cc
是的简称。(R5RS提到了它,但没有像R6RS和R7RS那样正式标准化名称。)


它用于例外情况。它还用于从模块导入名称,以避免名称冲突。例如,如果您使用名称列表定义自己的函数,但仍希望使用原始函数。然后(require(racket:racket中的前缀))将使用前缀从racket导入名称。您现在可以使用racket:list获取原始文件。