SATySFiでlistやoptionなどを文字列化して表示する方法

概要

自分が作成したdebug-show-valueというパッケージを使用することで、リストやオプションなどを簡単に文字列化できます。

自分の作った関数のデバッグ用にとても便利です。

インストール方法

Satyrographosを使う場合

$ opam update
$ opam install satysfi-debug-show-value
$ satyrographos install

でインストールができます。

手動で行う場合

まず

$ git clone https://github.com/puripuri2100/SATySFi-debug-show-value

をすることで手元にリポジトリのコピーを作成します。

次に、LIBROOT/local/packages/以下にdebug-show-valueというフォルダを作ります。

最後に、フォルダ内のdebug-show-value.satygLIBROOT/local/packages/debug-show-value/にコピーします。

これで完了です。

提供する関数

モジュール名はDebugShowValueです。

プリミティブな型の変換

  • show-int : int -> string
  • show-string : string -> string
  • show-bool : bool -> string
  • show-length-pt : length -> string
  • show-length-mm : length -> string
  • show-length-inch : length -> string
  • show-unit : unit -> string
  • show-point : point -> string
  • show-color : color -> string

関数名から役割はわかるとは思いますが、その型を与えると文字列にします。lengthに関しては、基準とする単位を定めることができます。

組み合わせる型の変換

  • show-tuple : ('a -> string) -> 'a list -> string
  • show-list : ('a -> string) -> 'a list -> string
  • show-opt : ('a -> string) -> 'a option -> string
  • show-opt-list : ('a -> string) -> ('a option) list -> string

show-tupleでは同じ型のtupleしか表現できないので、異なる型でのtupleを表示したい場合は、

show-tuple (fun s -> s) [show-int 1; show-bool true]

などのようにしてください。

おわりに

リストの表示やoption型の表示は結構面倒なので、これで簡略化できるととても良いと思っています。