Hodnoty typu pair!
lze vytvořit s použitím literálové skladby nebo při běhu programu konstruktorem make
, konverzí to
nebo funkcí as-pair
.
>> make pair! [20 30]
== 20x30
>> make pair! 42
== 42x42
>> to pair! [20 30]
== 20x30
>> to pair! 42
== 42x42
>> to pair! "42x42"
== 42x42
Funkce as-pair
přijímá argumenty x
a y
typu integer!
nebo float!
. Hodnoty float budou okleštěny.
>> as-pair 20 30
== 20x30
>> as-pair 1.23 42
== 1x42
Pro hodnotu typu pair!
lze použít všechny komparátory: =, ==, <>, >, <, >=, <=, =?
. Navíc jsou podporovány funkce min
a max
.
Porovnávání dvou hodnot typu pair!
začíná jejich druhou částí /y
. Jsou-li stejné, porovnávají se první části /x
. Jsou-li i tyto části stejné, jsou oba páry stejné. Na příklad:
>> 5x3 = 5x3
== true
>> 0x0 < 1x1
== true
>> 999x999 < 1x1
== false
>> 999x0 < 1x1
== true
>> sort [0x1 1x0 0x2 2x0 1x1 2x2]
== [1x0 2x0 0x1 1x1 0x2 2x2]
Funkce +
, -
, *
, /
, %
, //
, add
, subtract
, multiply
, divide
, remainder
a mod
, lze použít s hodnotami typu pair!
.
Typ pairs!
podporuje upřesnění (refinements) /x
a /y
pro zobrazení nebo úpravu souřadnic.
>> my-pair: 1024x768
== 1024x768
>> my-pair/x
== 1024
>> my-pair/y
== 768
>> my-pair/y: 42
== 42
>> my-pair
== 1024x42
K ověření, zda hodnota je typu pair!
použijeme funkci pair?
.
>> pair? 42x42
== true
>> pair? 42
== false
Funkce type?
vrací datový typ zadané hodnoty.
>> type? 42x42
== pair!
absolute
, add
, and~
, at
, copy
, divide
, multiply
, negate
, or~
, pick
, remainder
, reverse
, round
, skip
, subtract
, xor~
caret-to-offset
, draw
, first
, make-face
, metrics?
, mod
, modulo
, offset-to-caret
, offset-to-char
, pair?
, second
, size-text
, to-pair
, within?