我想确保我没有错过可读但简洁的 F# 语法:我使用fun下面的语法是否过于冗长?
let toCamelCase word indexes =
let mapping i c =
match (indexes |> List.contains i) with
| true -> Char.ToUpper(c)
| _ when Char.IsUpper(c) -> Char.ToLower(c)
| _ -> c
word |> String.mapi mapping
[
("fsharP", [0; 1])
("nAtiveinterop", [0; 6])
("taskbuildereXtensions", [0; 4; 11])
("microsoftword", [0; 9])
]
|> List.map (fun (word, indexes) -> (word, indexes) ||> toCamelCase)
Run Code Online (Sandbox Code Playgroud)
另外,请告诉我上面代码中的其他地方是否可以改进
在某些函数式语言中,uncurry函数非常常见:
let uncurry f (a,b) = f a b
Run Code Online (Sandbox Code Playgroud)
然后你就可以写|> List.map (uncurry toCamelCase)了。
或者,您可以稍微简化一下您现在所拥有的内容:
|> List.map (fun pair -> pair ||> toCamelCase)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
290 次 |
| 最近记录: |