我正在努力創建一個F#函數。我是F#的新手(充其量),真的可以使用一些幫助。我已經澆了一個星期的時間,所以你提供的任何幫助都是無價的!帶有「匹配」和「查找並替換」的F#函數
功能目標:
- 輸入:一個
List
和string
- 修改會員字符串
Proper Case
- 比較字符串的每個項目在列表
- 替換任意與清單項目匹配的項目
實施例:
- 字符串= 「的美元在SC」
- 列表= [ 「NIF」; 「PF」; 「PS」; 「SC」; 「我們」; 「美國」; 「USD」]
功能操作:
- 設置串到適當的大小寫=「美元在SC」
- 比較字符串與每個項目列表中,並替換爲適當
- 「我們」 變成 「美國」
- 「SC」 變成了 「SC」
- 最終的結果是「在SC美元」
這是我迄今。
let myList = ["NIF"; "PF"; "PS"; "SC"; "US"; "USA"; "USD"]
let FixAccronyms aList fixString=
aList |> List.iter
(fun listItem ->
match listItem with
| fixString -> printfn "%s, %s" listItem fixString
| _ -> printf "%s" "" |> ignore)
在FSI:
FixAccronyms myList中 「美元在SC」 ;;
該函數遍歷列表,但它打印列表中的每個項目,而不僅僅是匹配fixString的位置。假設工作,我既不知道如何模式相匹配的字符串的一部分,也不做一個查找和字符串內更換...
結果FSI
val myList2 : string list = ["NIF"; "PF"; "PS"; "SC"; "US"; "USA"; "USD"]
val FixAccronyms2 : aList:string list -> fixString:'a -> unit
>FixAccronyms2 myList2 "the us dollar in sc";;
NIF, NIF
PF, PF
PS, PS
SC, SC
US, US
USA, USA
USD, USD
val it : unit =()
謝謝提前!
謝謝大家的回覆!我從來沒有想過爲相同的結果獲得三種獨特的方法。而且,你們都沒有接近我「認爲」將會是答案的地方。我期望通過迭代列表完成某種類型的匹配。 但是,我問你:我怎麼知道這些庫?這只是經驗還是有方法可以找到解決問題的庫或方法? – Uziel 2013-03-20 00:18:09