gpt4 book ai didi

f# - 有没有办法不必在模式匹配中重复这个函数调用?

转载 作者:行者123 更新时间:2023-12-03 15:06:58 25 4
gpt4 key购买 nike

我有一个字符串,我想使用一个事件模式来匹配它。
我注意到当值是函数的输入时,我必须重复相同的函数调用。有没有办法不必继续调用该函数?

let (|A|B|C|X|) stringValue =
match stringValue with
| value when compareCaseInsensitive stringValue "a" -> A
| value when compareCaseInsensitive stringValue "b" -> B
| value when compareCaseInsensitive stringValue "c" -> C
| _ -> X stringValue

最佳答案

您可以为您的黑盒函数定义另一个事件模式:

let (|CCI|_|) (v: string) c =
if v.Equals(c, System.StringComparison.InvariantCultureIgnoreCase) then Some()
else None

let (|A|B|C|X|) stringValue =
match stringValue with
| CCI "a" -> A
| CCI "b" -> B
| CCI "c" -> C
| _ -> X stringValue

关于f# - 有没有办法不必在模式匹配中重复这个函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33283016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com