2017-05-08 1 views
0

Ich habe dieses Programm, das ich in F # erstellt habe. Ich muss einen Satz akzeptieren und dann den Satz zurücksenden, in dem die Wortart/das Wort/die Art der einzelnen Wörter/Zeichen steht. Wie kann ich etwas einlesen, mit dem mapStrToken übereinstimmen und das Wort/den Charakter und die Wortart ausdrucken?Wie drucke ich eine Aussage, dann lösche Artikel in F #

Ich habe diesen Code hier:

type tokens = Art of string | Noun of string | Adj of string 
       | Adv of string | 
       | Verb of string | Comma of string | Conj of string 
       |Prep of string | EOS of string | NONE;; 
let mapStrToken str = 
    match str with 
     | "dog" -> Noun str | "cat" -> Noun str | "mouse" -> Noun str | "tree" -> Noun str | "cheese" -> Noun str 
     | "a" -> Art str | "the" -> Art str 
     | "likes" -> Verb str | "hates" -> Verb str | "eats" -> Verb str | "chases" -> Verb str 
     | "," -> Comma str 
     | "." -> EOS str | "!" -> EOS str 
     | "fast" -> Adj str | "slow" -> Adj str | "furry" -> Adj str | "yellow" -> Adj str 
     | "quickly" -> Adv str | "slowly" -> Adv str | "quietly" -> Adv str 
     | "and" -> Conj str | "or" -> Conj str 
     | "of" -> Prep str | "around" -> Prep str 
     | _ -> NONE 
+0

Es ist nicht klar, was Ihr Ziel ist und welche Probleme aufgetreten sind. Versuchen Sie, Ihre Frage umzuformulieren, um sie klarer zu machen. –

+0

Was versuchst du zu tun? Ich vermute, dass dein Anwendungsfall etwas wie "ein schneller, gelber Hund" ist .split ('') |> Array.map mapStrToken |> processTokenArray', aber ich weiß nicht, was deine Ausgabe für processTokenArray wäre. –

+0

Ein Ratschlag, da ich vermute, dass Sie um Hilfe bei einem Hausaufgabenproblem bitten: Die meisten Professoren werden absolut in Ordnung sein, wenn Sie um Hilfe bitten, * solange Sie es offenlegen *. Geben Sie einen Kommentar in Ihren Code ein, der besagt "Ich habe um Hilfe gebeten http://stackoverflow.com/q/43857644, und diese Funktion stammt von der Person, die mir geholfen hat" (oder eine ähnliche Formulierung) und Ihnen sollte nichts passieren. Abhängig von der Politik Ihres Professors, wenn Sie es nicht offen legen, könnte er dies als Betrug betrachten. Wenn das keine Hausaufgaben sind, ignorieren Sie diesen Kommentar natürlich. – rmunn

Antwort

0

Nicht sicher, ob dies ist, was Sie fordern, aber versuchen Sie dies.

let tokenArray = "a fast , yellow dog".Split(' ') |> Array.map mapStrToken 
let doSomethingWithTokens = function 
    | [Art; Adj; Comma; Adj; Noun] -> Some("article adjective comma adjective noune") 
    | _ -> None 
tokenArray |> doSomethingWithtokens