前の質問に続いて、私はゆっくりとFParsecのコツをつかんでいます(私は特に理解するのが難しいと思いますが)。
次の初心者のF#の質問は、パーサーが作成するリストからデータを抽出するにはどうすればよいですか?
たとえば、前の質問のサンプルコードをParser.fsというモジュールにロードし、別のモジュールに非常に単純な単体テストを追加しました(適切な参照を使用)。XUnitを使用しています:
open Xunit
[<Fact>]
let Parse_1_ShouldReturnListContaining1 () =
let interim = Parser.parse("1")
Assert.False(List.isEmpty(interim))
let head = interim.Head // I realise that I have only one item in the list this time
Assert.Equal("1", ???)
インタラクティブに、解析「1」を実行すると、応答は次のようになります。
val it : Element list = [Number "1"]
有効な演算子のリストを微調整することで、解析「1+1」を実行して以下を取得できます。
val it : Element list = [Number "1"; Operator "+"; Number "1"]
私の代わりに何を置く必要がありますか?上記のスニペットで?また、演算子などではなく、数値であることを確認するにはどうすればよいですか?