Après my previous question, je commence lentement à comprendre FParsec (bien que je trouve cela particulièrement difficile de le faire).Comment extraire des données à partir de la liste F #
Ma prochaine question F # débutant est, comment puis-je extraire des données de la liste que l'analyseur crée?
Par exemple, j'ai chargé l'exemple de code de la question précédente dans un module appelé Parser.fs, et ajouté un test unitaire très simple dans un module séparé (avec les références appropriées). J'utilise 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", ???)
interactivement, quand j'exécute parse "1" la réponse est:
val it : Element list = [Number "1"]
et en modifiant la liste des opérateurs valides, je peux courir parse " 1 + 1" pour obtenir:
val it : Element list = [Number "1"; Operator "+"; Number "1"]
Que dois-je mettre en place ma ??? dans l'extrait ci-dessus? Et comment puis-je vérifier que c'est un numéro, plutôt qu'un opérateur, etc.?