【发布时间】:2011-01-03 01:03:42
【问题描述】:
我正在学习机器学习,使用的是 SML/NJ 方言。我想弄清楚的是是否有行注释运算符。我找到了块注释运算符 (* ... *),但我真的很想念行 cmets。
建议?还是我只是卡在块 cmets 上?
【问题讨论】:
我正在学习机器学习,使用的是 SML/NJ 方言。我想弄清楚的是是否有行注释运算符。我找到了块注释运算符 (* ... *),但我真的很想念行 cmets。
建议?还是我只是卡在块 cmets 上?
【问题讨论】:
你被块 cmets 困住了。
另一方面,block cmets 可以嵌套:(* (* *) still comment here *)
【讨论】:
(**) 中正确嵌套的注释括号内的任何字符序列”)。所有实现都正确地支持它们,并且总是有。此外,FWIW、MLton 和 SML/NJ 最近都实施了一项旧提案,允许通过 (*) 进行线路 cmets,尽管尚未发布。
There is a RFC for line comments, 提出一个哈希标记,后跟一个空格。
【讨论】:
# a 已经是现有代码中使用的有效语法。在一些编译器中已经实现的提议是使用(*) 开始一行注释。
只要您启用 sML(“继任者 ML”)扩展(sml -Cparser.succ-ml=true 用于 SML/NJ),单线 cmets 现在在 MLton 和 SML/NJ 中均提供。
这是一个具体的例子。在下面的定义中,1 的值被忽略,a 的定义取自下一行 (2)。 (下面=表示续行,请忽略断句高亮。)
$ sml -Cparser.succ-ml=true
- val a = (*) 1
= 2;;
val a = 2 : int
有关 sML 的更多信息,请参阅 https://github.com/SMLFamily/Successor-ML/wiki/Summary-of-proposed-changes。
【讨论】: