2017-05-08 59 views
0

我有我在F#中創建的這個程序。我需要接受一個句子,然後返回一個句子,說明他們每個詞/角色的詞性和詞/字。我如何閱讀,匹配mapStrToken並打印出單詞/字符和詞性?如何打印語句,然後刪除F#中的項目#

我有這樣的代碼在這裏:

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

目前尚不清楚你的目標是什麼以及遇到了什麼問題。嘗試重新提出您的問題,使其更清晰。 –

+0

你想做什麼?我懷疑你的用例就像''快速,黃色的狗「.split('')|> Array.map mapStrToken |> processTokenArray',但我不知道你的processTokenArray輸出是什麼。 –

+0

一個建議,因爲我懷疑你是在尋求幫助完成作業問題:大多數教授在你尋求幫助時絕對沒問題,*只要你透露*。在你的代碼中留下一條評論,提到「我在http://stackoverflow.com/q/43857644尋求幫助,而這個功能來自幫助我的人(或類似的措辭),你應該沒問題。根據你的教授的政策,如果你不透露他/她可能會認爲這是作弊。如果這不是作業,當然,不要理會這個評論。 – rmunn

回答

0

不知道這是否是你所問的,但試試這個。

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