Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kuantum algoritmasının veri yapıları açısından bir sorun gösterimi yerine elde edilmesi gerekenlere odaklanması nedeniyle dil tasarımına daha işlevsel bir bakış açısı getirmek doğal bir seçimdir. Aynı zamanda tür sistemi, güçlü kodun formülesini kolaylaştıran program analizi ve diğer derleme zamanı denetimleri için kullanılabilecek güçlü bir mekanizmadır.
Genel olarak, Q# türü sistemi oldukça minimalisttir, C# veya Java gibi klasik dillerden kullanılabileceğini gibi açıkça sınıflar veya arabirimler belirtilmemiştir. Ayrıca, belirli yapıların henüz tür sistemiyle tam olarak tümleştirilmemiş olması için artımlı ilerleme kaydeden biraz pragmatik bir yaklaşım benimsiyoruz. Buna örnek olarak ifadeler içinde kullanılabilen ancak henüz tür sisteminde temsili olmayan functor'lar örnek olarak verilmiştir. Buna karşılık, şu anda bağımsız değişken olarak atanamaz veya geçirilemezler. Benzer şekilde, parametrized çağrılabilenler türü için de geçerlidir. Tür sisteminin daha eksiksiz bir şekilde genişletilmesinde artımlı ilerlemeler sağlamayı ve acil ihtiyaçları daha uzun vadeli planlarla dengelemeyi bekliyoruz.
Kullanılabilir Türler
| Türü | Açıklama |
|---|---|
Unit |
Tek değeri ()olan tekil bir türü temsil eder. |
Int |
64 bit imzalı tamsayıyı temsil eder. Değerleri -9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 arasındadır. |
BigInt |
herhangi bir boyuttaki imzalı tamsayı değerlerini temsil eder. |
Double |
Çift duyarlıklı 64 bit kayan noktalı bir sayıyı temsil eder. Değerler -1,79769313486232e308 ile 1,79769313486232e308 arasında ve NaN (sayı değil) aralığındadır. |
Bool |
Booledeğerlerini temsil eder. Olası değerler true veya false. |
String |
Metni UTF-16 kod birimlerinden oluşan değerleri olarak temsil eder. |
Qubit |
Sanal kuantum belleğinin ele alınabileceği opak bir tanımlayıcıyı temsil eder.
Qubit türü değerleri ayırma yoluyla oluşturulur. |
Result |
eigenvalues ±1 ile kuantum işlecinin eigenspaces üzerinde yansıtıcı ölçümün sonucunu temsil eder.
olası değerleri Zero veya One. |
Pauli |
Tek kubitli Pauli matrisi temsil eder. Olası değerleriPauliI, PauliX, PauliYveya PauliZ. |
Range |
Eşit aralıklı Int değerlerinden oluşan sıralı bir diziyi temsil eder.
Değerler sıraları artan veya azalan sırada temsil edebilir. |
| Dizi | Her biri aynı türde bir değer dizisi içeren değerleri temsil eder. |
| Tuple | Her biri farklı türlerdeki sabit sayıda öğe içeren değerleri temsil eder. Tek bir öğe içeren demetler, içerdikleri öğeye eşdeğerdir. |
struct |
Farklı türlerdeki adlandırılmış öğelerden oluşan kullanıcı tanımlı türü temsil eder. yeni bir örnek bildirilirken Değerler örneği oluşturulur. |
| Operasyon | Bir (büyük olasılıkla tanımlama grubu değerli) giriş bağımsız değişkeni alan ve bir (büyük olasılıkla tanımlama grubu değerli) çıkış döndüren belirlenimci olmayan çağrılabilen bir temsil eder. işlem değerlerine yapılan çağrıların yan etkileri olabilir ve aynı bağımsız değişkenle çağrılsa bile her çağrı için çıkış farklılık gösterebilir. |
| İşlev | Bir (büyük olasılıkla tanımlama grubu değerli) giriş bağımsız değişkeni alan ve bir (büyük olasılıkla tanımlama grubu değerli) çıkış döndüren belirlenimci çağrılabilen temsil eder. işlev değerlerine yönelik çağrıların yan etkileri yoktur ve aynı girişte çıkış her zaman aynı olacaktır. |