рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдореИрдВ рдПрдкреАрдПрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди
рдХреЗ рднрд╛рд╖рд╛ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЬреАрдпреВрдЖрдИ рд╢рд╛рдорд┐рд▓ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд╣реА рдЕрд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдерд╛ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреЗ рднрд╛рд╖рд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдиреЗ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЬреАрдпреВрдЖрдИ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрддрд┐рд╣рд╛рд╕ рдореЗрдВ рдмрдирд╛ рд░рд╣рд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдХреЛрдИ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдЖрдзреБрдирд┐рдХ рдврд╛рдВрдЪреЗ рдХреЛ рдмрддрд╛рдПрдЧрд╛ - рдпрд╣ рджреЗрдЦрдирд╛ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдПрдкреАрдЖрдИ рдХрд╛ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ:
`show$`v show variable v `hide$`v hide variable v
рдмрд╕, рдЗрддрдирд╛ рд╣реА рдирд╣реАрдВ рд╣реИред рдпрд╛рдиреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ K рдореЗрдВ GUI рдореЗрдореЛрд░реА рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдорд╛рдирдЪрд┐рддреНрд░рдг рд╣реИред рдФрд░ рдЕрдм рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
C:\>k K 3.1 2004-01-28 Copyright (C) 1993-2004 Kx Systems WIN32 2CPU 4030MB ws-1341.x.com 0 EVAL a:10 _draw 100 / list a 20 51 12 34 31 51 29 35 17 89 `show$`a
рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реНрдХреНрд░реАрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред

рдХреЛрдИ рднреА рдорд╛рди рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реИ, 35 рд╕реЗ 135 рдХреЛ рдмрджрд▓реЗрдВ рдФрд░ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╕реВрдЪреА рдореЗрдВ рдореВрд▓реНрдп рдХреЛ рддреБрд░рдВрдд рдмрджрд▓ рджреЗрддрд╛ рд╣реИ:
a 20 51 12 34 31 51 29 135 17 89
рдпрджрд┐ рд╣рдо рд╕реВрдЪреА рдореЗрдВ рдореВрд▓реНрдп рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╣реЛ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдмрд╣реБрдд рдХреБрдЫ рд╣реЛрдиреЗ рджреЛ:
a:(10 10000000) _draw 100 / 10 10 `show$`a

рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ - рд╕рдм рдХреБрдЫ рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд, рд╕реНрдХреНрд░реЙрд▓ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╣рдо рд╕реНрддрдВрднреЛрдВ рдХреЛ рдирд╛рдо рджреЗрддреЗ рд╣реИрдВ: рдпрд╣ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИ рдХрд┐ рд╕реНрддрдВрдн рдирд╛рдо рдХреБрдВрдЬреА рд╣реИ, рдФрд░ рд╕реВрдЪреА рд╣реИрд╢рдЯреЗрдмрд▓ рд╕реЗ рдорд╛рди рд╣реИ:
t:.((`a;10 _draw 100;);(`b;10 _draw 100)) `show$`t

рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдФрд░ рдХреНрдпрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдФрд░ рдЯреНрд░рд┐рдЧрд░ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЪрд░ рдХреЗ рд▓рд┐рдП рд╣реИрд╢рдЯреЗрдмрд▓ рдореЗрдВ рд╕рд┐рд░реНрдл рдПрдХ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЛрдИ рдореВрд▓реНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВ - рд╡рд┐рднрд┐рдиреНрди рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ:
рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг: рдПрдХ рд▓реЗрдмрд▓ рдЬреЛрдбрд╝рдирд╛ред
val:10 val..l:"Input field" `show$`val

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЧрд┐рдиреА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИрдВ:
Display attributes (for variables that have class). x width integer(KFONT width) y height integer(KFONT height) a arrangement nest of symbols(class `form) o options list of symbols(class `radio) l label string kl click label string (also klr) Data-display attributes (for variables that have class `data). functions (monadic, constant or array) default e editable 0 or 1 1 f format string from data 11$(11.2$) g getdata data from string 0$ etc. u update update[old;new] : fg foreground integer(rrggbb) 0 bg background integer(rrggbb) -1(808080) expressions/events (strings) ins, del, f1 ... f12, ctrl_a ... ctrl_z k, kr, kk click, click right, double click(precludes e) c class(display) symbol `data(default) atom, list, dict, list of lists, dict of lists `chart as above where atom is list of y values `plot as above where atom is matrix of (x;y) values `check 0 or 1 `radio symbol (one of ..o; see below) `button expression or dictionary of expressions `form dictionary of entries of any class(incl. `form)
рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рд╡рд░рдг рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ рдФрд░ рдореИрдВ рдореИрдиреБрдЕрд▓ рд╕реЗ рд╕рдорд╛рдирддрд╛ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ред
рд╢рдмреНрджрдХреЛрд╢ рдмрдирд╛рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП - рднрд╛рд╖рд╛ рдЖрдкрдХреЛ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ - рдЕрд░реНрдерд╛рдд рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдФрд░ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рд╣реИ рдЬреЛ рд╕рд┐рд░реНрдл рд╣реИрд╢ рдЯреЗрдмрд▓ рд╣реИрдВ:
\d form val:100 incr:"val+:1" incr..l:"Increment" decr:"val-:1" decr..l:"Decrement" incr..c: decr..c: `button \d ^ form / - . .((`val;100;) (`incr "val+:1" .((`l;"Increment";) (`c;`button;))) (`decr "val-:1" .((`l;"Decrement";) (`c;`button;))))
рд╡рд┐рд╢реЗрд╖рддрд╛ .. рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдХреНрд░рдо рд╕реЗрдЯ рдХрд░реЗрдВред
form..a:`incr`val`decr form.val..e:0 / .

.. рдП рдХрд┐рд╕реА рднреА рд░реВрдк рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдмрдЯрди рдЬреЛрдбрд╝реЗрдВред
form.incr10:"val+:10" form.decr10:"val-:10" form.incr10..c : form.decr10..c: `button form..a:(,`incr;`decr10`val`incr10;,`decr) form..a (,`incr `decr10 `val `incr10 ,`decr)

рдпрд╛рдиреА рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрдкреВрд░реНрдг рдЬреАрдпреВрдЖрдИ рднрд╛рд╖рд╛ рдХреА рдЖрджрд┐рдо рд╕рдВрд░рдЪрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИ рдФрд░ рдЙрдирдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдорд╛рдирдЪрд┐рддреНрд░рдг рд╣реИред рдЖрдк рд╣реИрд╢ рдХреЛ рд╣реИрд╢ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рдлрд╛рд░реНрдо рдХреЛ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡реЛрдВ рдЖрджрд┐ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
рдЦреИрд░, рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк, рдЕрд░реНрдерд╛рддреН рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг:
рдХреИрд▓рдХреНрдпреВрд▓реЗрдЯрд░:
calc..a:(`exp `va`vb`vc`vd `n0`n1`n2`n3 `n4`n5`n6`n7 `n8`n9`lp`rp `fa`fs`fm`fd`fe `eval`clear) / calc:@[_n;1_-1_ calc..a;:[;"exp,:(~_v)`l"]] / expressions calc[.;`l]:"abcd0123456789()+-*%:" / labels calc.eval:"exp:5:. exp" calc.clear:"exp:\"\"" calc[.;`c]:`button calc.exp:calc.exp..l:"" `show$`calc

рдЖрдк рд░реЗрдЦрд╛рдВрдХрди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
p..c:`chart p:(5 5) _draw 100 `show$`p

рдпрд╛ рдЕрддреНрдпрдзрд┐рдХ рдХрд▓рд╛рддреНрдордХ рдбрдм:
`show$.,((`p;({[x] (2 30)_draw 30}'!10);.,(`c;`plot;)))

рдФрд░ рдЕрдм рдПрдХ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдЕрдкрдиреА рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдФрд░ рд╕реНрдкрд╖реНрдЯрддрд╛ (рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рдПрдХ рдиреНрдпреВрдирддрдо рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде) рдХреЗ рд╕рд╛рде рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдХреЗ рдЧрд╣рд░рд╛ рдЕрдзреНрдпрдпрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛:
рдкреНрд░рд╕рд╛рд░рдг рд╕рд░реНрд╡рд░:
d:10 _draw 10 w:!0 / empty client list .mg:{w,:_w;d} / return data .mc:"w@:&~w=_w" / retain clients .ms:{. x;w 3:\:x;} / (log `l 5:,x) apply and broadcast \mi 1 listen on port 1
рдЧреНрд░рд╛рд╣рдХ:
h:3:(`;1) / connect to server d:h 4:_n / get database d..t:"if[0=_w;h 3:(_v;_i;:;_v ._i)]" / send my updates `show$`d
рдпреЗ рдХреБрдЫ рд▓рд╛рдЗрдиреЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░реНрд╡рд░ рдмрдирд╛рддреА рд╣реИрдВред рдФрд░ рдЬрд┐рддрдиреЗ рдЧреНрд░рд╛рд╣рдХ рдЪрд╛рд╣реЗрдВ рдЙрддрдиреЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рд╕реВрдЪреА рд╣реИ, рд╕рд┐рд░реНрдл 9 рд▓рд╛рдЗрдиреЗрдВред рдПрдХ рд╕рдорд╛рди рдХреЛрдб (рдЬреАрдпреВрдЖрдИ рдХреЗ рдмрд┐рдирд╛) рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкрд░рд┐рд╡рд╣рди рдФрд░ рд╕рдВрддреБрд▓рди рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдПрдХреНрд╕рдЪреЗрдВрдЬреЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ
рдХреНрдпреВ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ (рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ) рдХреА рд╕реЗрд╡рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рддрд╕реНрд╡реАрд░ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдпрд╣ рдЧрддрд┐рд╢реАрд▓рддрд╛ рдореЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
