9

文字列を識別された共用体であるAST型に解析するF#プログラムを作成しています。

(Mono + Mac OS Xで)コードを実行するために使用するfsiと、ASTは適切な形式で出力されます。しかし、私が使用するprintfn "%s" <| ast.ToString()と、のようなものが得られますFSI_0002.Absyn+clazzToString識別されたすべての共用体タイプのメソッドを作成するのは大変な作業です。

値を印刷する方法を教えてくださいfsi

4

3 に答える 3

10

試しましたprintfn "%A" astか?指定者は、 [MSDN]が存在する場合はそれ%Aを考慮します。StructuredFormatDisplayAttribute

于 2011-09-17T02:39:12.940 に答える
2

識別された共用体を文字列に変換するsprintf "%A" astには、ast.ToString()の代わりに使用する必要があります。

Enum.GetNameが必要な場合は、Microsoft.FSharp.Reflection名前空間を使用できます。F#ユニオンメンバーに相当するEnum.GetNameは何ですか?を参照してください。。

于 2015-04-11T02:56:27.563 に答える
1

ダニエルのコメントに加えて、これはあなたが望む方法でそれをフォーマットする方法を説明する良いブログ記事です:

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)

于 2011-09-17T05:17:57.280 に答える