Aracılığıyla paylaş


Değerler

Değer, bir ifade değerlendirilerek oluşturulan verilerdir. Bu bölümde M dilindeki değer türleri açıklanmaktadır. Her bir değer türü, o türdeki değerlerin bir kümesi, bu değer kümesi üzerinde tanımlanmış bir işleç kümesi, yeni oluşturulan değerlere atfedilen bir içsel tür ve belirli bir söz dizimi ile ilişkilendirilir.

Tip Literal
Sıfır null
Mantıklı true    false
Numara 0    1    -1    1.5    2.3e-5
Time #time(09,15,00)
Date #date(2013,02,26)
Tarih Saat #datetime(2013,02,26, 09,15,00)
DateTimeZone #datetimezone(2013,02,26, 09,15,00, 09,00)
Süre #duration(0,1,30,0)
Metin "hello"
İkili #binary("AQID")
Liste {1, 2, 3}
Kayıt [ A = 1, B = 2 ]
Table #table({"X","Y"},{{0,1},{1,0}})
İşlev (x) => x + 1
Tür type { number }    type table [ A = any, B = text ]

Aşağıdaki bölümlerde her bir değer türü ayrıntılı olarak ele alınıyor. Türler ve tür ataması, Türler'de resmi olarak tanımlanır. İşlev değerleri İşlevler'de tanımlanır. Aşağıdaki bölümlerde her değer türü için tanımlanan işleçler listelenmiştir ve örnekler verebilirsiniz. İşleç semantiğinin tam tanımı İşleçler bölümünde yer alır.

Boş

Null değer, bir değerin yokluğunu veya belirsiz veya bilinmeyen durum değerini göstermek için kullanılır. Null değer, null literal kullanılarak yazılır. Null değerler için aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x > y Daha büyük
x >= y Büyüktür veya eşittir
x < y Daha az
x <= y Küçüktür veya eşittir
x = y eşit
x <> y Eşit değil
x ?? y Coalesce

null değerinin öz tipi, null içsel türüdür.

Mantıksal

Boole işlemleri için mantıksal bir değer true veya false değerine sahiptir. Mantıksal bir değer, true ve false değişmezleri kullanılarak yazılır. Mantıksal değerler için aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x > y Büyüktür
x >= y Büyüktür veya eşittir
x < y Küçüktür
x <= y Küçüktür veya eşittir
x = y Equal
x <> y Not equal
x or y Koşullu mantıksal VEYA
x ?? y Coalesce
x and y Koşullu mantıksal AND
not x Mantıksal DEĞİl

Her iki mantıksal değerin (true ve false) yerel türü, iç türüdür logical.

Sayı

Sayı değeri , sayısal ve aritmetik işlemler için kullanılır. Aşağıda sayı sabitleri örnekleri verilmiştir:

3.14  // Fractional number 
-1.5  // Fractional number 
1.0e3 // Fractional number with exponent
123   // Whole number 
1e3   // Whole number with exponent 
0xff  // Whole number in hex (255)

Bir sayı, en azından bir Double hassasiyetiyle temsil edilir (ancak daha fazla hassasiyet sağlayabilir). Çift gösterimi, [IEEE 754-2008] içinde tanımlanan ikili kayan nokta aritmetiği için IEEE 64 bit çift duyarlık standardıyla uyumludur. (Double gösterimi, 5,0 x 10324 ile 1,7 x 10308 arasında, 15 ila 16 basamak duyarlılıkla yaklaşık bir dinamik aralığa sahiptir.)

Aşağıdaki özel değerler de sayı değerleri olarak kabul edilir:

  • Pozitif sıfır ve negatif sıfır. Çoğu durumda, pozitif sıfır ve negatif sıfır, basit sıfır değeriyle aynı şekilde davranır, ancak bazı işlemler ikisini birbirinden ayırır.

  • Pozitif sonsuzluk (#infinity) ve negatif sonsuzluk (-#infinity). Sonsuzlar, sıfır olmayan bir sayıyı sıfıra bölme gibi işlemler tarafından üretilir. Örneğin, 1.0 / 0.0 pozitif sonsuzluk verir ve -1.0 / 0.0 negatif sonsuzluk verir.

  • Not-a-Number (NaN) değeri #nan genellikle NaN olarak kısaltılır. NaN'ler, sıfırı sıfıra bölme gibi geçersiz kayan nokta işlemleriyle oluşturulur.

İkili matematik işlemleri bir Hassasiyet kullanılarak gerçekleştirilir. Kesinlik, işlenenlerin yuvarlandığı etki alanını ve işlemin gerçekleştirildiği etki alanını belirler. Açıkça belirtilen bir duyarlık olmadığında, bu tür işlemler Çift Duyarlık kullanılarak gerçekleştirilir.

  • Matematiksel işlemin sonucu hedef biçim için çok küçükse, işlemin sonucu pozitif sıfır veya negatif sıfır olur.

  • Matematiksel işlemin sonucu hedef biçim için çok büyükse, işlemin sonucu pozitif sonsuz veya negatif sonsuz olur.

  • Matematik işlemi geçersizse işlemin sonucu NaN olur.

  • Kayan nokta işleminin işlenenlerinden biri veya her ikisi de NaN ise, işlemin sonucu NaN olur.

Sayı değerleri için aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x > y Daha büyük
x >= y Büyüktür veya eşittir
x < y Daha az
x <= y Küçüktür veya eşittir
x = y Eşit
x <> y Eşit değil
x + y Toplam
x - y Fark
x * y Ürün
x / y Bölüm
x ?? y Coalesce
+x Birli artı
-x Olumsuzlama

Sayı değerlerinin yerel türü, iç türüdür number.

Zaman

Saat değeri , günün saatinin opak bir gösterimini depolar. Bir zaman, gece yarısından bu yana geçen 100 nanosaniyelik tıklama sayısı olarak, 24 saatlik bir saatte kodlanır. Gece yarısından bu yana saat tıklamaları açısından maksimum sayı 23:59:59,9999999 saati ifade eder.

Zaman için değişmez söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Zaman, iç işlevi #timekullanılarak da oluşturulabilir:

#time(hour, minute, second)

Aşağıdakiler doğru olmalıdır veya Expression.Error neden kodu ile bir hata oluşur:

0 ≤ saat ≤ 24
0 ≤ dakika ≤ 59
0 ≤ saniye ≤ 59

Buna ek olarak, saat = 24 ise, dakika ve saniye sıfır olmalıdır.

Saat değerleri için aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x = y Eşit
x <> y Eşit değil
x >= y Büyüktür veya eşittir
x > y Daha büyük
x < y Daha az
x <= y Küçüktür veya eşittir
x ?? y birleşmek

Aşağıdaki işleçler işlenenlerinden birinin veya her ikisinin tarih olmasına izin verir:

Operatör Sol İşlenen Sağ Operant Anlamı
x + y time duration Süreye göre tarih uzaklığı
x + y duration time Süreye göre tarih kaydırması
x - y time duration Negatif süreye göre tarih uzaklığı
x - y time time Tarihler arasındaki süre
x & y date time Birleştirilmiş tarih ve saat

Zaman değerlerinin doğal türü, içsel türdür time.

Tarih

Tarih değeri , belirli bir günün opak gösterimini depolar. Tarih, Gregoryen takvimde 1 Ocak 0001 Ortak Dönemi'nden başlayarak, dönem sonundan bu yana geçen gün sayısı olarak kodlanır. Dönem başlangıcından itibaren azami gün sayısı 3652058'dir ve bu, 31 Aralık 9999 tarihine karşılık gelir.

Tarihler için doğrudan bir sözdizimi olmasa da, tarihleri oluşturmak için birkaç standart kitaplık işlevi sağlanır. Tarihler, iç işlevi #datekullanılarak da oluşturulabilir:

#date(year, month, day)

Aşağıdaki şartlar sağlanmazsa, neden koduyla Expression.Error bir hata oluşur.

1 ≤ yıl ≤ 9999
1 ≤ ay ≤ 12
1 ≤ gün ≤ 31

Ayrıca, gün seçilen ay ve yıl için geçerli olmalıdır.

Tarih değerleri için aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x = y Eşit
x <> y Eşit değil
x >= y Büyüktür veya eşittir
x > y Daha büyük
x < y Daha az
x <= y Küçüktür veya eşittir
x ?? y Coalesce

Aşağıdaki işleçler işlenenlerinden birinin veya her ikisinin tarih olmasına izin verir:

Operatör Sol İşlenen Sağ İşlenen Anlamı
x + y date duration Süreyle tarih kaydırma
x + y duration date Süreyle kaydırılan tarih
x - y date duration Negatif süreye göre tarih uzaklığı
x - y date date Tarihler arasındaki süre
x & y date time Birleştirilmiş tarih ve zaman

Tarih değerlerinin yerel türü, iç türüdür date.

DateTime

Bir tarih ve saat değeri hem tarih hem de saat içerir.

Tarih saatlerinin değişmez söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Datetimes, iç işlevi #datetimekullanılarak da oluşturulabilir:

#datetime(year, month, day, hour, minute, second)

Aşağıdakiler tutulmalıdır veya Expression.Error neden koduyla bir hata oluşur: 1 ≤ yıl ≤ 9999
1 ≤ ay ≤ 12
1 ≤ gün ≤ 31
0 ≤ saat ≤ 23
0 ≤ dakika ≤ 59
0 ≤ saniye ≤ 59

Ayrıca, gün seçilen ay ve yıl için geçerli olmalıdır.

Tarih saat değerleri için aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x = y Eşit
x <> y Eşit değil
x >= y Büyüktür veya eşittir
x > y Büyüktür
x < y Daha az
x <= y Küçüktür veya eşittir
x ?? y Coalesce

Aşağıdaki işleçler işlenenlerinden birinin veya her ikisinin tarih saat olmasına izin verir:

Operatör Sol İşlenen Sağ İşlenen Anlamı
x + y datetime duration Süreye göre tarih saat uzaklığı
x + y duration datetime Süreye göre tarih saat uzaklığı
x - y datetime duration Devredilen süreye göre tarih saat uzaklığı
x - y datetime datetime Tarih saatleri arasındaki süre

Tarih saat değerlerinin yerel türü, iç türüdür datetime.

DateTimeZone

Datetimezone değeri bir datetime ve saat dilimi içerir. Saat dilimi, UTC'den dakika uzaklığı olarak kodlanır ve tarih saat bölümünün Evrensel Eşgüdümlü Saat'ten (UTC) uzak olması gereken dakika sayısını sayar. UTC'ye olan dakika cinsinden en az sapma -840'tır, bu da UTC sapması olarak -14:00 ya da UTC'den on dört saat daha erken demektir. UTC'den en fazla dakika uzaklığı 840'tır ve utc uzaklığı 14:00'a karşılık gelir.

Datetimezones için doğrudan bir söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Datetimezones da iç işlevi #datetimezonekullanılarak oluşturulabilir:

#datetimezone(
       year, month, day,
       hour, minute, second,
       offset-hours, offset-minutes)

Aşağıdaki koşullar sağlanmalıdır aksi takdirde neden koduyla Expression.Error bir hata oluşur.

1 ≤ yıl ≤ 9999
1 ≤ ay ≤ 12
1 ≤ gün ≤ 31
0 ≤ saat ≤ 23
0 ≤ dakika ≤ 59
0 ≤ saniye ≤ 59
-14 ≤ saat farkı ≤ 14
-59 ≤ kaydırma dakikası ≤ 59

Buna ek olarak, gün seçilen ay ve yıl için geçerli olmalı ve offset-hours = 14 ise offset-minutes <= 0 ve offset-hours = -14 ise offset-minutes >= 0 olmalıdır.

Datetimezone değerleri için aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x = y Eşit
x <> y Eşit değil
x >= y Büyüktür veya eşittir
x > y Büyüktür
x < y Daha az
x <= y Küçüktür veya eşittir
x ?? y Coalesce

Aşağıdaki işleçler, işlenenlerinden birinin veya her ikisinin datetimezone olmasına olanak tanır:

Operatör Sol İşlenen Sağ Operatör Anlamı
x + y datetimezone duration Süreye göre datetimezone uzaklığı
x + y duration datetimezone Süreye göre tarih-zaman dilimi kayması
x - y datetimezone duration Negatif süreyle ayarlanan datetimezone farkı
x - y datetimezone datetimezone Tarih saat dilimleri arasındaki süre

Datetimezone değerlerinin yerel türü, iç türüdür datetimezone.

Süre

Süre değeri, zaman çizelgesindeki iki nokta arasındaki 100 nanosaniyelik dilimler halinde ölçülen mesafenin opak bir temsilini depolar. Bir sürenin büyüklüğü pozitif veya negatif olabilir; pozitif değerler zaman içinde ilerlemeyi ifade eder ve negatif değerler zamanda geriye doğru ilerlemeyi ifade eder. Bir süre içinde depolanabilecek en düşük değer -9.223.372.036.854.775.808 tık veya 10.675.199 gün 2 saat 48 dakika 05.4775808 saniye zaman içerisinde geridir. Bir süre içinde depolanabilecek en yüksek değer 9,223,372,036,854,775,807 ticks veya 10.675.199 gün 2 saat 48 dakika 05.4775807 saniye ileriye doğrudur.

Süreler için değişmez söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. Süreler, iç işlevi #durationkullanılarak da oluşturulabilir:

#duration(0, 0, 0, 5.5)          // 5.5 seconds 
#duration(0, 0, 0, -5.5)         // -5.5 seconds 
#duration(0, 0, 5, 30)           // 5.5 minutes 
#duration(0, 0, 5, -30)          // 4.5 minutes 
#duration(0, 24, 0, 0)           // 1 day 
#duration(1, 0, 0, 0)            // 1 day

Süre değerlerinde aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x = y Eşit
x <> y Eşit değil
x >= y Büyüktür veya eşittir
x > y Büyüktür
x < y Daha az
x <= y Küçüktür veya eşittir
x ?? y Coalesce

Ayrıca, aşağıdaki işleçler işlenenlerinden birinin veya her ikisinin de süre değeri olmasına izin verir:

Operatör Sol İşlenen Sağ İşlenen Anlamı
x + y datetime duration Süreye göre tarih saat uzaklığı
x + y duration datetime Süreye göre tarih saat uzaklığı
x + y duration duration Sürelerin toplamı
x - y datetime duration "Negatif süre ile zaman farkı"
x - y datetime datetime Tarih saatleri arasındaki süre
x - y duration duration Süre farkı
x * y duration number Sürenin N katı
x * y number duration Sürenin N katı
x / y duration number Süre'nin kesir kısmı
x / y duration duration Sürelerin sayısal bölümü

Süre değerlerinin yerel türü, iç türüdür duration.

Metin

Metin değeri, Unicode karakter dizisini temsil eder. Metin değerleri, aşağıdaki gramerle uyumlu harfiyen bir forma sahiptir.

_text literal değeri:
       " text-literal-charactersopt"
metin-harf-karakterleri:
      metin-harf-karakter metin-harf-karakterleropt
metin-harfi-karakter
      tek metinli karakter
      karakter kaçış dizisi
      iki tırnak-kaçış dizisi
tek metin karakterli:

      Herhangi bir karakter, " (U+0022) veya # (U+0023) dışında, ( (U+0028) ile ardından gelen
double-quote-escape-sequence:
       "" (U+0022, U+0022)

Aşağıda bir metin değeri örneği verilmiştir:

"ABC" // the text value ABC

Aşağıdaki işleçler metin değerlerinde tanımlanır:

Operatör Sonuç
x = y Eşit
x <> y Eşit değil
x >= y Büyüktür veya eşittir
x > y Büyüktür
x < y Daha az
x <= y Küçüktür veya eşittir
x & y Bitiştirme
x ?? y Coalesce

Metin değerlerinin yerel türü, iç türüdür text.

İkilik

İkili değer bir bayt dizisini temsil eder.

İkili değerler için doğrudan bir söz dizimi olmasa da, bunları oluşturmak için birkaç standart kitaplık işlevi sağlanır. İkili değerler, iç işlevi #binarykullanılarak da oluşturulabilir.

Aşağıdaki örnek, bayt listesinden bir ikili değer oluşturur:

#binary( {0x00, 0x01, 0x02, 0x03} )

İkili değerlerde aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x = y Eşit
x <> y Eşit değil
x >= y Büyüktür veya eşittir
x > y Büyüktür
x < y Küçüktür
x <= y Küçüktür veya eşittir
x ?? y Coalesce

İkili değerlerin yerel türü, iç tür ikili türüdür.

Liste

Liste değeri, numaralandırıldığında bir değer dizisi oluşturan bir değerdir. Liste tarafından üretilen bir değer, liste de dahil olmak üzere herhangi bir türde değer içerebilir. Listeler aşağıdaki gibi başlatma söz dizimi kullanılarak oluşturulabilir:

list-expression:
      { item-listopt }
öğe-listesi:
      öğe
      öğe
,öğesi-listesi
madde:
      ifade
      ifade
..ifadesi

Aşağıda, üç metin değerine sahip bir liste tanımlayan bir liste ifadesi örneği verilmiştir: "A", "B"ve "C".

{"A", "B", "C"}

Değer "A" listedeki ilk öğedir ve değer "C" listedeki son öğedir.

  • Bir listenin öğeleri erişilene kadar değerlendirilmez.
  • Liste söz dizimi kullanılarak oluşturulan liste değerleri öğeleri öğe listesinde göründükleri sırayla üretse de, genel olarak kitaplık işlevlerinden döndürülen listeler her numaralandırıldığında farklı bir küme veya farklı sayıda değer üretebilir.

Listeye a..b tamsayı dizisi eklemek için, form kullanılabilir:

{ 1, 5..9, 11 }     // { 1, 5, 6, 7, 8, 9, 11 }

Listedeki öğe sayısı (liste sayısı olarak bilinir) işlevi kullanılarak List.Count belirlenebilir.

List.Count({true, false})  // 2 
List.Count({})             // 0

Bir listede etkili bir şekilde sonsuz sayıda öğe olabilir; List.Count bu tür listeler tanımlanmamıştır ve hata verebilir veya sonlandırılmayabilir.

Listede öğe yoksa, boş liste olarak adlandırılır. Boş bir liste şöyle yazılır:

{}  // empty list

Listeler için aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x = y Equal
x <> y Eşit değil
x & y Birleştir
x ?? y Kaynaşmak

Örneğin:

{1, 2} & {3, 4, 5}   // {1, 2, 3, 4, 5} 
{1, 2} = {1, 2}      // true 
{2, 1} <> {1, 2}     // true

Liste değerlerinin özgün türü, any öğe türünü belirten içsel tür list'dir.

Kayıt

Kayıt değeri, sıralı bir alan dizisidir. Alan, kayıttaki alanı benzersiz olarak tanımlayan bir metin değeri olan alan adından ve alan değerinden oluşur. Alan değeri, kayıt da dahil olmak üzere herhangi bir tür değer olabilir. Kayıtlar aşağıdaki gibi başlatma söz dizimi kullanılarak oluşturulabilir:

kayıt ifadesi:
       [ liste alanıopsiyonu]
alan listesi:
      alan
      alan
,alan listesi
alan:
      alan adı
= ifadesi
alan-adı:
      genelleştirilmiş tanımlayıcı
      quoted-identifier

Aşağıdaki örnek, x adlı alanı 1 değeriyle ve y adlı alanı 2 değeriyle içeren bir kayıt oluşturur.

[ x = 1, y = 2 ]

Aşağıdaki örnek, iç içe kayıt değerine sahip a adlı alana sahip bir kayıt oluşturur. İç içe kayıt, b adlı bir alana ve 2 değerine sahiptir.

[ a = [ b = 2 ] ]

Kayıt ifadesi değerlendirilirken aşağıdakiler geçerlidir:

  • Her alan adına atanan ifade, ilişkili alanın değerini belirlemek için kullanılır.

  • Bir alan adına atanan ifade değerlendirildiğinde bir değer üretirse, sonuçta elde edilen kaydın alanının değeri olur.

  • Bir alan adına atanan ifade değerlendirildiğinde bir hata oluşturursa, bir hatanın oluşturulduğu gerçeği, oluşturulan hata değeriyle birlikte alana kaydedilir. Bu alana daha sonra erişim, kaydedilen hata değeriyle bir hatanın yeniden yükseltilmesine neden olur.

  • İfade, üst ortam gibi bir ortamda değerlendirilir ve yalnızca kaydın başlatılmakta olan alan dışındaki her alanının değerine karşılık gelen değişkenler birleştirilir.

  • Kayıttaki bir değer, ilgili alana erişilene kadar değerlendirilmez.

  • Kayıttaki bir değer en fazla bir kez değerlendirilir.

  • İfadenin sonucu, boş meta veri kaydına sahip bir kayıt değeridir.

  • Kayıttaki alanların sırası, kayıt başlatıcısı-ifadesinde göründükleri sırayla tanımlanır.

  • Belirtilen her alan adının kayıt içinde benzersiz olması gerekir, aksi durumda bu bir hatadır. Adlar sıralı karşılaştırma kullanılarak karşılaştırılır.

    [ x = 1, x = 2 ] // error: field names must be unique 
    [ X = 1, x = 2 ] // OK

Alanları olmayan bir kayda boş kayıt adı verilir ve aşağıdaki gibi yazılır:

[] // empty record

Bir alana erişilirken veya iki kayıt karşılaştırılırken bir kaydın alanlarının sırası önemli olmasa da, kaydın alanlarının numaralandırılması gibi diğer bağlamlarda önemlidir.

Alanlar elde edildiğinde aynı iki kayıt farklı sonuçlar üretir:

Record.FieldNames([ x = 1, y = 2 ]) // [ "x", "y" ] 
Record.FieldNames([ y = 1, x = 2 ]) // [ "y", "x" ]

Bir kayıttaki alanların sayısı işlevi kullanılarak Record.FieldCount belirlenebilir. Örneğin:

Record.FieldCount([ x = 1, y = 2 })  // 2 
Record.FieldCount([])                // 0

Kayıt başlatma söz dizimini [ ]kullanmaya ek olarak, kayıtlar bir değer listesinden ve alan adları listesinden veya kayıt türünden oluşturulabilir. Örneğin:

Record.FromList({1, 2}, {"a", "b"})

Yukarıdakiler aşağıdakilere eşdeğerdir:

[ a = 1, b = 2 ]

Kayıt değerleri için aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x = y Eşit
x <> y Eşit değil
x & y Birleştir
x ?? y Coalesce

Aşağıdaki örneklerde yukarıdaki işleçler gösterilmektedir. Kayıt birleştirmenin, alan adlarında çakışma olması halinde, sol işlenendeki alanları geçersiz kılmak için sağ işlenendeki alanları kullandığını unutmayın.

[ a = 1, b = 2 ] & [ c = 3 ]    // [ a = 1, b = 2, c = 3 ] 
[ a = 1, b = 2 ] & [ a = 3 ]    // [ a = 3, b = 2 ] 
[ a = 1, b = 2 ] = [ b = 2, a = 1 ]         // true 
[ a = 1, b = 2, c = 3 ] <> [ a = 1, b = 2 ] // true

Kayıt değerlerinin yerel türü, açık boş alan listesini belirten iç türüdür record.

Tablo

Tablo değeri sıralı bir satır dizisidir. Satır, sıralı bir sütun değerleri dizisidir. Tablo türü tablodaki tüm satırların uzunluğunu, tablo sütunlarının adlarını, tablo sütunlarının türlerini ve tablo anahtarlarının yapısını (varsa) belirler.

Tablolar için literal bir söz dizimi olmasa da, bunların oluşturulmasına imkan tanıyan birkaç standart kitaplık işlevi sunulmaktadır. Tablolar, iç işlevi #tablekullanılarak da oluşturulabilir.

Aşağıdaki örnek, sütun adları listesinden ve satır listesinden bir tablo oluşturur. Sonuçta elde edilen tablo iki sütun type any ve üç satır içerir.

#table({"x", "x^2"}, {{1,1}, {2,4}, {3,9}})

#table tam tablo türünü belirtmek için de kullanılabilir:

#table(
    type table [Digit = number, Name = text],  
    {{1,"one"}, {2,"two"}, {3,"three"}} 
    )

Burada yeni tablo değeri, sütun adlarını ve sütun türlerini belirten bir tablo türüne sahiptir.

Tablo değerleri için aşağıdaki işleçler tanımlanır:

Operatör Sonuç
x = y Eşit
x <> y Eşit değil
x & y Birleştirme
x ?? y Coalesce

Tablo birleştirme, adlandırılmış sütunlar gibi hizalanır ve işlenen tablolardan yalnızca birinde görünen sütunlar için doldurulur null . Aşağıdaki örnekte tablo birleştirme gösterilmektedir:

  #table({"A","B"}, {{1,2}}) 
& #table({"B","C"}, {{3,4}})
A B C
1 2 null
null 3 4

Tablo değerlerinin yerel türü, içsel tür table'den türetilen, sütun adlarını listeleyen, tüm sütun türlerini 'any' olarak belirten ve anahtarı olmayan özel bir tablo türüdür. (Şuraya gidin: Tablo türleriyle ilgili ayrıntılar için tablo türleri.)

İşlev

İşlev değeri , bir dizi bağımsız değişkeni tek bir değerle eşleyen bir değerdir. İşlev değerlerinin ayrıntıları İşlevler bölümünde açıklanmıştır.

Tür

Tür değeri, diğer değerleri sınıflandırır. Tür değerlerinin ayrıntıları Türler bölümünde açıklanmıştır.