有没有办法在ocaml中打印用户定义的数据类型?

tes*_*ssr 15 ocaml

我无法使用,print_endline因为它需要一个字符串,我不(想)我有任何方法可以将我非常简单的用户定义数据类型转换为字符串.如何检查这些数据类型的变量值?

ste*_*vez 13

在许多情况下,编写自己的string_of_转换例程并不困难.这是一个简单的替代方案,不需要任何额外的库或非标准的OCaml扩展.对于我教授使用OCaml的课程,这通常是学生最简单的机制.

(如果支持对字符串的泛型转换,那将是很好的;也许OCaml派生的东西会流行起来.)

  • 这就是我一直在做的事情.顺便说一句,我相信我实际上在你的课堂上. (15认同)
  • 我是这么认为的,根据问题的时间...... :-) (5认同)

Jef*_*eld 9

基本语言中没有任何内容可以帮助您.有一个名为OCaml Deriving的项目(以Haskell的一个特性命名)可以从类型声明中自动派生打印函数.我没有用它,但听起来很棒.

http://code.google.com/p/deriving/

一旦你有了打印类型(派生与否)的功能,你可以将它安装在ocaml顶级.这可能很方便,因为内置的顶级打印有时并不能满足您的需求.为此,请使用OCaml手册第9章中#install-printer描述的指令.