Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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# “那是什么?”;arg00";在LexBuffer类型中<;char>;。词素串?_F#_Fslex - Fatal编程技术网

F# “那是什么?”;arg00";在LexBuffer类型中<;char>;。词素串?

F# “那是什么?”;arg00";在LexBuffer类型中<;char>;。词素串?,f#,fslex,F#,Fslex,Fsharp.Text.Lexing的LexBuffer.lexemstring类型中的“arg00”是什么 > LexBuffer<char>.LexemeString;; val it : arg00:LexBuffer<char> -> string LexBuffer.LexemeString;; val it:arg00:LexBuffer->string 简单的回答是,F#有时可以在打印函数类型时跟踪参数名称。在本例中,arg00是编译器为Lex

Fsharp.Text.Lexing
LexBuffer.lexemstring
类型中的“arg00”是什么

> LexBuffer<char>.LexemeString;;
val it : arg00:LexBuffer<char> -> string
LexBuffer.LexemeString;; val it:arg00:LexBuffer->string 简单的回答是,F#有时可以在打印函数类型时跟踪参数名称。在本例中,
arg00
是编译器为
LexemeString
操作的第一个参数生成的隐式名称

较长的答案是,F#在处理函数参数时有点不一致。如果使用
let
定义函数,则输出将包括参数:

> let foo a b = a + b;;
val foo : a:int -> b:int -> int
如果通过函数名将函数作为值,则结果将被视为函数值(带括号),参数名将被忽略:

> foo;;
val it : (int -> int -> int) = <fun:it@4-2>
> type A = 
    static member Foo a b = a + b;;
type A = (...)

> A.Foo;;
val it : arg00:int -> arg10:int -> int