在 Boo 中定义运算符
我希望将一些轻量级元编程从 Nemerle 转移到 Boo,并且我正在尝试找出如何定义自定义运算符。 例如,我可以在 Nemerle 中执行以下操作:
macro @<-(func, v) {
<[ $func($v) ]>
}
那么这两个是等效的:
foo <- 5;
foo(5);
我找不到在 Boo 中执行此操作的方法 - 有什么想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
虽然 Boo 通过定义适当的静态运算符函数 (
op_addition
) 支持运算符重载,并且还支持语法宏,但目前不支持创建自定义运算符。While Boo supports operator overloading by defining the appropriate static operator function (
op_addition
), and also supports syntactic macros, it does not support creating custom operators at this time.我不确定这是否正是您所需要的,但您可以在 Boo 中创建语法宏。 CodeHaus 网站上有一些信息,http://boo.codehaus.org/Syntropic+Macros,但语法在最近的版本之一中发生了变化。 我不知道有任何关于新语法的教程,但 Boo 0.8.2 的源代码版本有一些示例(一些语言结构是作为宏实现的)。 如果您不想下载完整源代码,可以查看 SVN 存储库,https://svn.codehaus.org/boo/boo/trunk/src/Boo.Lang.Extensions/Macros/。 断言宏将是一个很好的起点。
HTH
斯托
I'm not sure if this is exactly what you need but you can create syntactic macros in Boo. There's some information on the CodeHaus site, http://boo.codehaus.org/Syntactic+Macros, but the syntax has changed in one of the recent releases. I don't know of any tutorials on the new syntax but the source release for Boo 0.8.2 has some examples (some of the language structures are implemented as macros). If you don't want to download the full source a view of the SVN repository is available, https://svn.codehaus.org/boo/boo/trunk/src/Boo.Lang.Extensions/Macros/. The assert macro would be a good place to start.
HTH
Stoo