当前位置:  开发笔记 > 编程语言 > 正文

如何在Standard ML中打印多态值?

如何解决《如何在StandardML中打印多态值?》经验,为你挑选了1个好方法。

有没有办法在Standard ML(特别是SML/NJ)中打印多态值?我有一个多态函数,它没有做我想要的,并且由于在SML中调试的糟糕状态(参见调试生产函数程序的任何实际经验?),我想看看它在做什么好事 -噢print.一个简单的例子是(提示):

fun justThisOnce(x : 'a) : 'a = (print(x); x);
justThisOnce(42);

其他建议表示赞赏.与此同时,我会一直盯着提交的违规代码.

更新

我能够找到这个错误,但问题仍然是希望防止未来的痛苦和痛苦.



1> Norman Ramse..:

不,没有办法打印多态值.你有两个选择:

将您的函数专门用于整数或字符串,这些整数或字符串很容易打印.然后当虫子被杀时,再次使它变成多态.

如果错误仅在其他实例化中显示,则show作为函数的附加参数传递.例如,如果您的多态函数具有类型

'a list -> 'a list

你将类型扩展为

('a -> string) -> 'a list -> 'a list

您可以在show内部使用打印,然后通过将该功能部分应用到合适的位置show,您可以获得可在原始上下文中使用的版本.

这很乏味但确实有帮助.(但要注意:它可能会让你尝试Haskell.)

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有