我正在努力创建一个 F# 函数。我是 F# 的新手(充其量),真的可以使用一些帮助。我已经为此倾注了一个星期,所以你能提供的任何帮助都是无价的!
功能目标:
- 输入:a
List
和 astring
- 将字符串修改为
Proper Case
- 将字符串与列表中的每个项目进行比较
- 用列表项替换任何匹配项
例子:
- String = "sc 中的美元"
- 列表 = [“NIF”;“PF”;“PS”;“SC”;“我们”; “美国”; “美元”]
功能动作:
- 将字符串设置为正确大小写=“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 "the us dollar in 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 = ()
先感谢您!