Pertanyaan Dua pertanyaan F # sederhana


Ada dua potongan F # yang ingin saya pahami, tetapi tidak tahu apa yang harus google. Pertama:

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

Saya menebak ini hanya berarti "mengubah ekspresi menjadi pengenal"? Tapi apa fitur yang disebut jika saya ingin merujuknya?

Kedua, apa karakternya ^ berarti ketika itu terjadi dalam suatu tipe? Saya telah menemukan beberapa menyebutkannya, tetapi penjelasannya selalu hanya mengatakan "tipe ini" daripada "itu berbeda dari tipe tanpa 1 ^ 1 dalam ...". Sebagai contoh:

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

Banyak terima kasih sebelumnya.


4
2017-10-18 22:23


asal


Jawaban:


  1. Saya mungkin akan menyebutnya sebagai "identifier yang dikutip" http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html#_Toc270597387
  2. "Parameter tipe diselesaikan secara statis" http://msdn.microsoft.com/en-us/library/dd548046%28VS.100%29.aspx

4
2017-10-18 22:27



Sintaks backquote memang hanya cara untuk 'mengutip' karakter acak menjadi pengidentifikasi, saya tidak yakin apakah itu memiliki nama. Ini biasanya digunakan untuk misalnya

let ``This Identifier Contains Spaces`` = 42

atau

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

Karat menunjukkan parameter tipe yang diselesaikan secara statis:

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

digunakan untuk overloading / genericity ad-hoc.


1
2017-10-18 22:27