【问题标题】:Racket / vs - for identifier delimitersRacket / vs - 用于标识符分隔符
【发布时间】:2014-12-09 14:14:33
【问题描述】:

大部分时间在 lisps(包括球拍)中- 用于identifier-delimiters。我正在浏览球拍指南,发现合约使用/ 作为分隔符,例如define/delimiter。在 clojure 中 / 用于命名空间,但在球拍中 / 是一个有效的标识符字符。

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

谢谢!

【问题讨论】:

    标签: syntax racket convention


    【解决方案1】:

    /是“with”的缩写。

    本指南包含一系列约定。但是 / 约定不在表格中。

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

    【讨论】:

    • 用于异常。它还用于从模块导入名称以避免名称冲突。例如,如果您使用名称列表定义自己的函数,但仍想使用原始函数。然后 (require (prefix-in racket: racket)) 将从带有前缀的球拍中导入名称。您现在可以使用球拍:列表来获取原件。
    【解决方案2】:

    Jens 的回答是正确的,/ 是“with”的缩写。这已在 R6RS 和 R7RS 方案标准中得到体现,其中call/cccall-with-current-continuation 的简称。 (R5RS 提到了它,但没有像 R6RS 和 R7RS 那样正式标准化名称。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-23
      相关资源
      最近更新 更多