文字列を識別された共用体であるAST型に解析するF#プログラムを作成しています。
(Mono + Mac OS Xで)コードを実行するために使用するfsi
と、ASTは適切な形式で出力されます。しかし、私が使用するprintfn "%s" <| ast.ToString()
と、のようなものが得られますFSI_0002.Absyn+clazz
。ToString
識別されたすべての共用体タイプのメソッドを作成するのは大変な作業です。
値を印刷する方法を教えてくださいfsi
。
文字列を識別された共用体であるAST型に解析するF#プログラムを作成しています。
(Mono + Mac OS Xで)コードを実行するために使用するfsi
と、ASTは適切な形式で出力されます。しかし、私が使用するprintfn "%s" <| ast.ToString()
と、のようなものが得られますFSI_0002.Absyn+clazz
。ToString
識別されたすべての共用体タイプのメソッドを作成するのは大変な作業です。
値を印刷する方法を教えてくださいfsi
。
試しましたprintfn "%A" ast
か?指定者は、 [MSDN]が存在する場合はそれ%A
を考慮します。StructuredFormatDisplayAttribute
識別された共用体を文字列に変換するsprintf "%A" ast
には、ast.ToString()の代わりに使用する必要があります。
Enum.GetNameが必要な場合は、Microsoft.FSharp.Reflection
名前空間を使用できます。F#ユニオンメンバーに相当するEnum.GetNameは何ですか?を参照してください。。
ダニエルのコメントに加えて、これはあなたが望む方法でそれをフォーマットする方法を説明する良いブログ記事です:
http://blogs.msdn.com/b/dsyme/archive/2010/01/08/some-tips-and-tricks-for-formatting-data-in-f-interactive-and-a-in-sprintf- printf-fprintf.aspx(web.archive.org)