2011-02-07 13 views
6

デバッグの目的で、私はOCamlで任意の型の文字列に変換する関数を持っていますが、デバッガは現在持っていますが、型 'a - > string型の関数の記述

sexplibライブラリは完璧ですが、実際にはwith sexpを追加する必要があるすべてのタイプを変更できないため、camlp4も使用できません。

このような機能はありますか? (プロダクトコードではありませんので、私は汚れたソリューションを受け入れます)

HaskellのShow typeclassのようなものは、まさに私が意味するものです。 Batteries Includedでのお時間を

おかげ

+0

> Haskellの 'Show'型のクラスは本当にクールですが、OCamlには型のクラスはありません... OCamlの中で最も近いものは、showメソッドを持つ明示的なクラス型です。おそらくあなたが心に留めているものではないでしょう。 –

答えて

5

Stdモジュールが読める文字列に任意の型を変換dump機能を提供します。それは幾分限定されています - タイプについて知らないので、バリアントタイプのコンストラクタを適切に印刷して数字で置き換えることはできませんが、依然としてかなり役に立つかもしれません。タイプ情報は実行時に利用できないため、できるだけ良い情報が得られます。デバッガとトップレベルはより良い表現を得るためにコンパイラのトリッキーを使用しますが、一般的なライブラリでは不可能ではないにしても困難です。

私はどこかもっと洗練されたダンピングライブラリも見ているようですが、どこを思い出さないのですか?

関連する問題