我正在学习使用SML/NJ方言的机器学习。我想知道是否有单行注释运算符,因为我找到了块注释运算符 (* ... *),但我非常需要单行注释。
有什么建议吗?还是说我只能使用块注释?
你被困在块注释中。
另一方面,块注释可以嵌套:(* (* *) 这里仍然是注释 *)
#a
已经是现有代码中使用的合法语法。在一些编译器中实现的建议是使用(*)
来开始行注释。 - Andreas Rossberg现在MLton和SML / NJ都支持单行注释,只要您启用sML(“Successor ML”)扩展(对于SML / NJ,请使用sml -Cparser.succ-ml=true
)。
下面是一个具体的例子。 在以下定义中,值1
被忽略,并且a
的定义从下一行(2
)开始。 (下面的=
表示续行,请忽略损坏的语法突出显示。)
$ sml -Cparser.succ-ml=true
- val a = (*) 1
= 2;;
val a = 2 : int
请参阅https://github.com/SMLFamily/Successor-ML/wiki/Summary-of-proposed-changes了解更多关于sML的信息。
(*
*)
包含的任何字符序列”)。所有实现都正确支持它们,并始终如一地支持。另外,值得一提的是,MLton和SML/NJ最近已经实现了一个允许使用(*)
作为行注释的旧提案,尽管它还没有发布。 - Andreas Rossberg