Aracılığıyla paylaş


Tür Sistemi

Kuantum algoritmasının veri yapıları açısından 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, sağlam kod formüle etme işlemini kolaylaştıran program analizi ve diğer derleme zamanı denetimleri için kullanılabilecek güçlü bir mekanizmadır.

Sonuç olarak, Q# tür sistemi oldukça minimalisttir, çünkü C# veya Java gibi klasik dillerden kullanılabilecek sınıflar veya arabirimler için açık bir fikir yoktur. Ayrıca, belirli yapıların henüz tür sistemiyle tam olarak tümleştirilmemesi için artımlı ilerleme sağlayan biraz pragmatik bir yaklaşım benimsiyoruz. İfadeler içinde kullanılabilen ancak henüz tür sisteminde bir gösterimi olmayan functor'lar buna örnek olarak verilmiştir. Buna karşılık, parametrized çağrılabilen türlerde olduğu gibi, bunlar şu anda bağımsız değişken olarak atanamaz veya geçirilemez. Tür sisteminin daha eksiksiz olması için genişletmede artımlı ilerlemeler sağlamayı ve acil ihtiyaçları daha uzun vadeli planlarla dengelemeyi bekliyoruz.

Kullanılabilir Türler

içindeki Q# tüm türler sabittir.

Tür Description
Unit Tek değeri ()olan tekil türü temsil eder.
Int 64 bit işaretli bir tamsayıyı temsil eder. Değerler -9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 arasında değişir.
BigInt Herhangi bir boyuttaki işaretli 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).
Bool Boole değerlerini temsil eder. Olası değerler: true veya false.
String Metni UTF-16 kod birimlerinden oluşan bir diziden oluşan değerler olarak temsil eder.
Qubit Sanal kuantum belleğinin ele alınabileceği opak bir tanımlayıcıyı temsil eder. TürQubit değerleri ayırma yoluyla örneği oluşturulur.
Result Eigenvalues ±1 ile kuantum işlecinin eigenspaces üzerinde yansıtıcı ölçümün sonucunu temsil eder. Olası değerler veya OneşeklindedirZero.
Pauli Tek kubitli Pauli matrisi temsil eder. Olası değerler , PauliX, PauliYveya PauliZdeğerleridirPauliI.
Range Eşit aralıklı Int değerlerin sıralı sırasını temsil eder. Değerler sıraları artan veya azalan düzende 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.
Kullanıcı tanımlı tür Farklı türlerdeki adlandırılmış ve anonim öğelerden oluşan kullanıcı tanımlı bir türü temsil eder. Oluşturucu çağrılarak değerlerin örneği oluşturulur.
İşlem Bir (muhtemelen demet değerli) giriş bağımsız değişkeninin bir (muhtemelen demet değerli) çıkış döndürdüğü belirlenimci olmayan çağrılabilen bir değeri temsil eder. İşlem değerlerine yapılan çağrıların yan etkileri olabilir ve çıkış, aynı bağımsız değişkenle çağrıldığında bile her çağrı için farklılık gösterebilir.
İşlev Bir (muhtemelen demet değerli) giriş bağımsız değişkeninin bir (muhtemelen demet değerli) çıkış döndürdüğü belirlenimci çağrılabilen bir değeri temsil eder. İşlev değerlerine yapılan çağrıların yan etkileri yoktur ve aynı giriş verildiğinde çıkış her zaman aynı olacaktır.