Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 活动模式的别名?_F#_Alias - Fatal编程技术网

F# 活动模式的别名?

F# 活动模式的别名?,f#,alias,F#,Alias,我在模块Helper中有以下定义 module Helper let (|InvariantEqualLooooongName|_|) (str : string) arg = if String.Compare(str, arg, StringComparison.OrdinalIgnoreCase) = 0 then Some() else None 我想在另一个模块中使用它 let rec MyFunc .... = let alias = Helper.Inva

我在模块
Helper
中有以下定义

module Helper

let (|InvariantEqualLooooongName|_|) (str : string) arg =
    if String.Compare(str, arg, StringComparison.OrdinalIgnoreCase) = 0 then Some()
    else None
我想在另一个模块中使用它

let rec MyFunc .... = 
  let alias = Helper.InvariantEqualLooooongName // Error: The value, constructor, namespace or type 'InvariantEqualLooooongName' is not defined

  match a with 
  | alias "xxx" :: tail -> .....
  | alias "yyyy" :: tail -> ....
  | alias "zzzz" :: tail -> ...
  | alias "123" :: tail -> ...
然而,它得到的错误是

未定义值、构造函数、命名空间或类型“InvariantEqualoongName”


如何定义活动模式的别名

您可以为活动模式创建别名,如下所示:

let alias = Helper.(|InvariantEqualLooooongName|_|)
let (|Alias|_|)  = Helper.(|InvariantEqualLooooongName|_|)
但是我相信你不能在
match
表达式中使用它,因为如果没有特殊的符号,它将无法被识别。要使用别名,您必须按如下方式定义它:

let alias = Helper.(|InvariantEqualLooooongName|_|)
let (|Alias|_|)  = Helper.(|InvariantEqualLooooongName|_|)

您可以为活动模式创建别名,如下所示:

let alias = Helper.(|InvariantEqualLooooongName|_|)
let (|Alias|_|)  = Helper.(|InvariantEqualLooooongName|_|)
但是我相信你不能在
match
表达式中使用它,因为如果没有特殊的符号,它将无法被识别。要使用别名,您必须按如下方式定义它:

let alias = Helper.(|InvariantEqualLooooongName|_|)
let (|Alias|_|)  = Helper.(|InvariantEqualLooooongName|_|)