ืืืืงืื ืืงืืืืื (
ืืคืืขื, ืืขืจืืื ืืืืืื ืื ืืจืื ืื ืขื ืงืืื ืฉืืื ืืขื ืืืืืฉ ืืช ืืืืืจืื ืืืืื ืืื ืืืื. ืืื, ืืืืื ื ืืืืฉื ืืขืจืืื ืืืืืื ืืฆืืจื ืืื ืฉืืืืืจืื ืื ืืชืืืื ืขื ืืืกืื ืขืจืืื ืืืื.
ืืฉืคืืช ืชืื ืืช ืืกืืืืืช, ืืขืจืืื ืืืืืื ืืืืืื ืืฉืคื ืขืฆืื,
ืืืืืืื ืื ืืืขืืืื ืืืืื ืืืืืขืช ืืขืจืืื ืืืืืื ืืืืืื:
- ืื ืืืืกื ืื ืืช ืืขืจืืื ืฉื ืฆืืชืื ืืกืืืืื ืืืื ืืืื ื ืืืืกื ืื ืืช ืืขืจืืื ืฉื ืื ืืืืืจืื;
- ืืืืฉืง ืืืืฉื ืืขืจื ืฉื ืฆืืืช ืืืื ืืืื ืืืื ืฉืคืืช ืชืื ืืช ืืืืฉืืืช ืืืฉื ืืืืื ื ืืขืจื ืจื ืืืืื.
Set ^a(1, 2, 3)=5 Write ^a(1, 2, 3)
- ืืืืื ืืื ืืื ื ืืจืื ื ืืืื ืืืื ืืืืกืื ื ืชืื ืื, ืืืื ืืฉ ืื ืืืคืืื ื ืืืืจืืช ืืืฆืื ืืืคื (ืืืืืช ืืืคื ืขื ืขืฉืจืืช ืืืืืื ื ืขืกืงืืืช ืืฉื ืืื, ืชืืื ืืืืืจื, ืจืื ืืืื).
1 )
ืืืืืื ืฉืืืืืื ืืื ืืื ื ืืชืืฉื, ืืืืื ื ืืืฆืืจ ืขืืืื ืืขืจืืื ืืืืืื ืืืฉืจ ืืืืข ืืจืืฉ ืฉืืืืช ื-RAM ืื ืชืกืคืืง.
ืืื ืืืืคืืื ืื ืฉื ืืืฉืืื ืืขืจื ืื ืืื ืืืืจืช ืขืจื ืืจืืจืช ืืืื ืืืฉืื ืื ืืชืืฆืขืช ืืืฉื ืืชื ืื ืืืืืจ.
ื ืืชื ืืืืฉื ืืืช ืืืืฆืขืืช ืืคืื ืงืฆืื
SET a = $GET(^a(x,y,z), defValue)
ืืืื ืืฉืืืืช ืืืจืฉืืช ืืขืจืืื ืืืืืื ืืืืฆื ืืืืืืื ืืืืืื ืืขืืืจ?
ืืืจืืฆืช ืกืืืืืช (ืงืืฉืืจืืืช).
ืืจืืจ ืฉืืื ืฉืืืจืฃ ืืืื ืืืชืจ, ืื ืืืื ืืืชืจ ืืคืกืื ืืืืจืืฆื. ืื, ืืืฉื, ื ืืงื ืืจืฃ ืฉื ืจืฉืช ืืืจืชืืช ืื ืฆืื ืืืชื ืืฆืืจื ืฉื ืืืจืืฆื โโืืืื, ืื ืืื ืืืื ืืืจืื ืืืขื ืืืื ืืืคืกืื, ืืืืืจ. ืืืื ืืขืจื ืืืื.
Set ^m(id1, id2) = 1
Set ^m(id1, id3) = 1
Set ^m(id1, id4) = 1
Set ^m(id1) = 3
Set ^m(id2, id4) = 1
Set ^m(id2, id5) = 1
Set ^m(id2) = 2
....
ืืืืืื ืื, ืื ื ืืืกืืื ืืืืคื ืืืืืื ^m ืืืจืืฆืช ืงืืฉืืจืืืช, ืืื ืื ืืกืคืจ ืืงืฆืืืช ืืื ืฆืืืช (ืื ืืืจ ืขื ืื ืืืกืคืจ ืืืืจืื).
ืื ืืกืคืจ ืืืืื ืืื ืืืจืฃ ืืื ื ืขืืื ืขื 29 ืืืืืื (ืืกืคืจ ืื ื ืืงื ืืืืคืื ืฉื 8 *
ืื ืืคืืืฆืืืช ืขื ืืืจืืืืช ืกืืืืืช ืืืืฆืขืืช ืขื ืืื ืืคืื ืงืฆืื
; ัััะฐะฝะพะฒะบะฐ ะฑะธัะฐ
SET $BIT(rowID, positionID) = 1
; ะฟะพะปััะตะฝะธะต ะฑะธัะฐ
Write $BIT(rowID, positionID)
ืืืืช ืืขืืจ ืืืื ื ืืืื ื
ืืืืืื ืฉืืจืฃ ืืืขืืจ ืฉื ืืืืืื ืกืืคื ืืื ืืจืฃ ืจืืื, ืื ืืืืช ืืืขืืจ ืฉื ืืืืืืื ืืกืืคื ืืื ืืืชื ืืืจืืฆืช ืกืืืืืช ืฉื ืืืื ื ืืขืื.
ืืืืืืืืืช ืกืืืืจืืืช
ืืืืืืื ืืกืืืืจื ืืืคืืจืกื ืืืืชืจ ืืื
ืกืืืื ืืืืคืจื ืืืืื ืฉืืืืืืืื ืกืืืืจืืื ืื
ืืืื ืฉื ืืชื ืืืืฉื ืื ืืืืืจืืชื ืืจ ืืคืขืื ืืืืฉื ืืืืฆืขืืช ืืืืืื ืกืืืืจื. ืืืืืืืืืช ืกืืืืจืืืช ืืฉืืฉืืช ืืืืื ืฉื ืกืืืืืช ืืืขืจืืืช ืืื ืืืืช, ืืคืชืจืื ืืขืืืช ืืืืืจืืชืืืืช ืืืืืจืืช ืืืจืืช.
ืื ืืฉ ืื ื ืฉืื ืขื ืง ืืื ืื ื ืฆืจืืืื ืืชืขื ืืช ืื ืืฆืื ืืืื ืืื ืฉื ืืืืืื ืกืืืืจื, ืื ืืืืื ื ืืืฉืชืืฉ ืืืืืืืื.
ืงึทืจืืึนืืจึธืคึดืึธื
ืืืืจ ืืจืืฉืื ืฉืขืืื ืื ืืจืืฉ ืืฉืื ืืืืข ืืฉืืืืฉ ืืืขืจืืื ืืืืืื ืืื ืืฉืืืืช ืืืคืื.
ืืืื, ืืฉ ืืจืื ืืงืื ืจืืง ืืืคืืช. ืื ืืืคื ืืืืฆืืช ืืคืืงืกืืื ืืืืืื, ืื 71% ืืืคืืงืกืืื ืฉื ืืืืจ ืืืจืฅ ืืืื ืชืคืืกืื ืขื ืืื ืืืืงืืื ืืก. ืืขืจื ืืืื. ืืื ืืชื ืืืืฉื ืจืง ืขืืืืืช ืฉื ืืืืื ืื ืืฉืืืช, ืื ืืืื ืืจืืง ืืืื ืืืชืจ ื-95%.
ืืืืื, ืืฃ ืืื ืื ืืืืกื ืืคืืช ืืฆืืจื ืฉื ืืขืจืื ืจืกืืจ; ื ืขืฉื ืฉืืืืฉ ืืืืฆืื ืืงืืืจ.
ืืื ืืื ืืคืืช ืืงืืืจืืืช? ืืื ืืขืื ืืกืืจืช ืืคืืื ืงืืืื ืืืฆืืืขืื ืืืืจืืืื ืื ืงืืืืช.
ืืขืฆื ืืกื ื ืชืื ืื ืฉื ื ืงืืืืช ืืงืฉืจืื ืืื ืืื.
ืืืช ืืืฉืืืืช ืืืืคืื ืืฉืืคืชื ืืืช ืืืืชืจ ืืื ืืฉืืืช ืืืกืงืืค ืืืื ืืืืคืื ืืืืงืกืื ืฉืื ื. ืืืืคื ืคืืืืจืืืื, ืืืืงืกืื ืฉืื ื, ืืื ืืืงืื ืืืื, ืืื ืืขืจื ืืืื ืืชืืฉื: ืืจืืืื ืขืฆืืืื ืฉื ืจืืงื ืืช ืฉืืื ืืฉ ื ืงืืืืช ืงืื ืืช ื ืืืจืืช - ืืืืืื. ืฉืื ืจืืง ืืื 99,999999โฆโฆ.%. ืืืืกืื ืืคืช ืืืืงืกืื ืฉืื ื, ื ืืืจ ืืกื ื ืชืื ืื ืืืืืื - Cachรฉ.
ืื ื ืื ืืืืข ืืช ืืืื ื ืืืืืืง ืฉื ืืืืืืื ืืคืจืืืงื ืืื, ืื ื ืืืื ืืื ืื ืฉืื ืืฉืื ืืืื ื:
Set ^galaxy(b, l, d) = 1; ะะพะผะตั ะทะฒะตะทะดั ะฟะพ ะบะฐัะฐะปะพะณั, ะตัะปะธ ะตััั
Set ^galaxy(b, l, d, "name") = "Sun"
Set ^galaxy(b, l, d, "type") = "normal" ; ะฒะฐัะธะฐะฝัั blackhole, quazar, red_dwarf ะธ ั.ะด.
Set ^galaxy(b, l, d, "weight") = 14E50
Set ^galaxy(b, l, d, "planetes") = 7
Set ^galaxy(b, l, d, "planetes", 1) = "Mercury"
Set ^galaxy(b, l, d, "planetes", 1, weight) = 1E20
...
ืืืคื b, l, d
ืืืื ื ืืืืืฉ ืฉื ืืืืืืื ืืืคืฉืจ ืื ืืฉืืืจ ืืช ืื ืืืืคืืื ืื ืืืจืืฉืื ืฉื ืืืืืื ืืืืืื ืืืช, ืืืืืื ืฉืืืกืืกืื ืขื ืืืืืืื ืื ืืกืจื ืกืืื.
ืืื ืืืืกื ืืช ืืคืช ืืืงืื ืฉืื ื, Cachรฉ ื ืืืจ ืื ืจืง ืืืื ืืืืืฉืืช ืฉืื, ืืื ืื ืืืื ืืืืืืช ืฉืื ืืืืกื ืืจื ืฉื ื ืชืื ืื ืืืืืจืืช ืจืื, ืืื ืืื ืืช ืืืฆืืจ ืืื ืืงืก ืืืืืื ืืืืคืืฉืื ืืืืจืื.
ืื ื ืืืืจ ืืืืืจ ืืืจืฅ, ืื ื ืืฆืจื ืคืจืืืงืืื ืงืจืืืืจืคืืื ืขื ืืืืืืื
ืืืืจืื ื ืขื
ืืืฉืื ืืื ืืงืกืื ืืจืืืืื ืขื ืืืืืื ื-OpenStreetMap XAPI
ืชืืื ืืช ืฉืฆืืืื ื
ืื ืืืืืืืก ืืืืืง ืืจืืืืขืื, ืืื ืชืช-ืจืืืืขืื, ืืชืช-ืจืืืืขืื ืืชืช-ืจืืืืขืื, ืืื ืืืื. ืืืืคื ืืืื, ืื ื ืืงืืืื ืืื ื ืืืจืจืื ืืืืกืื ืืืื ืืืืืืื ื ืืฆืจืื.
ืืื ืจืืข ื ืืื ืืืงืฉ ืืืขื ืืื ืืช ืืจืืืืข ืืจืฆืื ืื ืืคื ืืช ืืืชื, ืืื ืื ืืืฉืืฆืืช ืืืฉื ื ืืืืืจื ืื ืืคื ื.
ืชืืื ืืช ืืืื ืขื ืืืืืืื ืืืืื ืืืืืช ืืืืฉืืช ืืืื ืืจืืื.
1 ืืคืฉืจืืช:
Set ^m(a, b, a, c, d, a, b,c, d, a, b, a, c, d, a, b,c, d, a, 1) = idะะตัะฒะพะนะขะพัะบะธ
Set ^m(a, b, a, c, d, a, b,c, d, a, b, a, c, d, a, b,c, d, a, 2) = idะัะพัะพะนะขะพัะบะธ
...
2 ืืคืฉืจืืช:
Set ^m('abacdabcdabacdabcda', 1) = idะะตัะฒะพะนะขะพัะบะธ
Set ^m('abacdabcdabacdabcda', 2) = idะัะพัะพะนะขะพัะบะธ
...
ืืฉื ื ืืืงืจืื, ืื ืงืฉื ืืืฉืชืืฉ ื-COS/M ืืื ืืืงืฉ ื ืงืืืืช ืืืืืงืืืช ืืจืืืืข ืืื ืจืื. ืื ืืืื ืงืฆืช ืืืชืจ ืงื ืื ืงืืช ืืืงืื ืืจืืืขืื ืฉื ืฉืื ืืื ืจืื ืืืคืฉืจืืช ืืจืืฉืื ื, ืืื ืื ืืืจืื ืืขืชืื ืจืืืงืืช.
ืืืืื ืืืื ืืืจืืืืขืื ืืืคืืก ืืชืืชืื:
ืืื ื ืืื ืืืืืืื ืืคืจืืืงื XAPI: ืืืฆืื ืฉื ืืื ืืงืก ืขื ืืืืืืื:
ืืืึนืึผึธืึดื ^ืืจื ืืฉืืฉ ืืืืกืื ื ืงืืืืช
ืกืืืื ืืก ืฉื ืืฉืืืืฉ ืืืขืจืืื ืืืืืื ืืืืืืืื.
- ืื ื ืืืืกื ืื ืืช ืืงืืืืจืืื ืืืช ืฉื ืืืืืืงืืื ืืกืืืืื ืืืฆืืืื (ืืืคืื, ืืืืืืืื ืกืืืืจืืื)
- ืื ื ืืืืกื ืื ืืืจืืฆืืช ืืืืืืช.
ืืืงืจื 2) ืืืฉืจ ืืืงืฉืื ืงืืืืจืืื ืื ืกืคืฆืืคืืช ืฉืื ืืืืื ื ืื ืืืงืฆื ืขืจื, ืขืืื ื ืืงืื ืืช ืืขืจื ืฉื ืจืืื ืืจืืจืช ืืืืื ืฉื ืืขืจื ืืืืืืช.
ืืื ืืกืื ืฉืื ื ืืงืืืื ืืขืช ืืืกืื ืืืจืืฆืืช ืจื-ืืืืืืช ืืืืืืืืืช
ืืกืจ ื/ืื ืืืจ ืืืืืจืืช ืืืงื ืฉืื ืฉืื ืืคืืืืช ืฉื ืฉืืจืืช, ืืืฉืืจืื, ืงืืืืืช ืืื'. ืืืงืจืื ืืื ื ืขืฉื ืฉืืืืฉ ืืืื ืืงืกืื ืฉืืืื, ืืืืืืช ืืืกืืจ ื/ืื ืืืืื ืืืืืจืืช ื ืชืื ืฉืื ืฉืื ืืคืืืืช ืฉื ืฉืืจืืช, ืืืฉืืจืื, ืงืืืืืช ืืื' ืขืฉืืื ืืืืืช ืฉืืืืฉืืช.
ืงึฐืืึผืฆึธื
ืืืืืจ ืืฆืื ืืขืจื ืชืืช ืืืืื ืืืืืื ^a ืืกืืืื ืฉืื ืื ืฉื ืืืืงืืช.
ืืื ืืืืืจ ืคืืกืืช ืฉืื ืืืืฆืขืืช ืืื ืืงืกืื ืืืืขืื, ืืชื ืืืื ืืืฉืชืืฉ ืืคืงืืื
ืืืืจืช ืขืืืืช ืืืจืืฆื โโืืืฉืชื ื Column:
; ะะฐะดะฐะดะธะผ ัััั
ะผะตัะฝัะน ัะฐะทัะตะถะตะฝะฝัะน ะผะฐััะธะฒ 3x3x3
Set ^a(0,0,0)=1,^a(2,2,0)=1,^a(2,0,1)=1,^a(0,2,1)=1,^a(2,2,2)=1,^a(2,1,2)=1
Merge Column = ^a(2,2)
; ะัะฒะตะดะตะผ ะฟะตัะตะผะตะฝะฝัั Column
Zwrite Column
ืืกืงื ื:
Column(0)=1
Column(2)=1
ืื ืฉืืขื ืืื ืืืฉืชื ื Column ืืื ืฉืืฉ ืื ื ืื ืืขืจื ืื, ืฉืืืื ืืฉ ืืืฉืช ืื ืืจื
ืืืืจืช ืคืืกืืช ืฉืื ืืืืื ืืืืขืฉืืช ืื ืืืืฆืขืืช ืชืืื ืืช ืงืื ื ืืืืฆืขืืช ืืคืื ืงืฆืื
ืืกืงื ื
ืืืื ืื ืื ืืืืืื ืืฆืืืื ืืฉืืืืช ืฉืืคืชื ืืืช ืืืฉืืช. ืืจืคืื ืืืืืื ืืืืืช ืืืจืืืื ืืืืืืืจืื ืงืืืงืืืื, ืืคืืช ืืืืจืืืืช ืืืืืืืจืื ื ืงืืืืช, ืืืืงื ืืืื ืืคืืื ืืจืฆื ืืืคืขืื ืืช ืืืงืื ืฉืืื ืขื ืืืืืืืื ืกืืืืจืืื (
ืืืฉืจ ื ืคื ืื ืชืื ืื ืืืขืจืืื ืืืืืื ืืืจ ืื ืืืื ืืืชืืื ื-RAM, ืืื ืืชื ืฆืจืื ืืขืืื ืืืชื, ืื ืืืื ืืฉืงืื ืืช ืืืคืฉืจืืช ืฉื ืืืฉืื ืคืจืืืงืืื ืืืืื ืขื ืืืืืืื ื-COS.
ืชืืื ืื ืขื ืชืฉืืืช ืืื! ืื ืื ื ืืืืื ืืฉืืืืช ืืืจืฆืื ืืช ืฉืื ืืชืืืืืช.
ืืชื ืืืชืืจ: ืืืืจ ืื ืืืืขืจืืช ืฉืื ืขืืื ืื ืืขืชื ืืืื ื ืืืืฆืืื ืืช ืืขืืื ืืจืฉืืืช ืฉื InterSystems Corporation.
ืืงืืจ: www.habr.com