Два простых вопроса F # - PullRequest
       2

Два простых вопроса F #

4 голосов
/ 19 октября 2011

Есть два фрагмента F #, которые я хотел бы понять, но не знаю, что гуглить.Первое:

let ``1+2`` () = .... 

Я предполагаю, что это просто означает "превратить выражение в идентификатор"?Но как называется эта функция, если я хочу сослаться на нее?

Во-вторых, что означает символ ^, когда он встречается в типе?Я нашел несколько упоминаний об этом, но в объяснении всегда говорится «тип это», а не «он отличается от типа без 1 ^ 1 в этом ...».Например:

let inline blah x y = x+y;;
val inline blah :
   ^a ->  ^b ->  ^c
    when ( ^a or  ^b) : (static member ( + ) :  ^a *  ^b ->  ^c)

Большое спасибо заранее.

Ответы [ 2 ]

4 голосов
/ 19 октября 2011
  1. Я бы назвал это "идентификатором в кавычках" http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html#_Toc270597387
  2. "Статически разрешенный параметр типа" http://msdn.microsoft.com/en-us/library/dd548046%28VS.100%29.aspx
1 голос
/ 19 октября 2011

Синтаксис обратной кавычки - это действительно способ «заключить» произвольные символы в идентификаторы, я не уверен, есть ли у него имя.Обычно используется, например, для

let ``This Identifier Contains Spaces`` = 42

или

foo.``member``(42)  // 'member' is an F# keyword, but maybe it was the name of some 
                    // method from C# code you're using, so here's a way to call it

Карат указывает статически разрешенный параметр типа:

http://msdn.microsoft.com/en-us/library/dd548046.aspx

используетсядля специальной перегрузки / универсальности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...