рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдорд░рдХрд░реА рдореЗрдВ рдЧреЗрдо рд▓рд╛рдЗрдл

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдорд░реНрдХрд░реА рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдПрдХ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ , рд╕рд╛рде рд╣реА рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рдЙрдард╛рдП рдЧрдП рдЦреЗрд▓ рдХреЗ рд╡рд┐рд╖рдп рдХреА рдЫрд╛рдк рдХреЗ рддрд╣рдд, рдЬреАрд╡рди ( 1 , 2 , 3 ) рдЗрд╕ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдореЗрдВ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред



рдмреБрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВред рдЗрд╕ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рддрд░реНрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдкреНрд░реЛрд▓реЙрдЧ рдХреЗ рд╕реБрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЧрдИ рдереАред рд╕реБрдзрд╛рд░ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рд╕реНрдереИрддрд┐рдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ (рд╕рд╛рде рд╣реА рдирд┐рдпрддрддреНрд╡рд╡рд╛рдж рдХреЗ рд╢рд╛рд╕рди рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдирддреАрдЬрддрди, рд╕рдВрдХрд▓рдХ рдХреЗ рдкрд╛рд╕ рдкреНрд░рднрд╛рд╡реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЕрд╡рд╕рд░ рд╣реИрдВ, рд╕рдВрдХрд▓рди рдЪрд░рдг рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдгред рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдкреНрд░реЗрдореА рд╢рд╛рдпрдж рдПрдХ рдордЬрд╛рдХ рдЬрд╛рдирддреЗ рд╣реИрдВ:

рдкреНрд░рд╢реНрди: рдПрдХ рд▓рд╛рдЗрдЯ рдмрд▓реНрдм рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рдХрд┐рддрдиреЗ рдкреНрд░реЛрд▓реЙрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд▓рдЧрддреЗ рд╣реИрдВ?

рдПрдХ: рдЧрд▓рддред



рдкреНрд░реЛрд▓реЙрдЧреНрд╕ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ, рд╡рд┐рдЬреБрдЕрд▓ рдкреНрд░реЛрд▓реЙрдЧ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдареЛрд╕ рдЬрдЧрд╣ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдкреНрд░реЛрд▓реЙрдЧ рдФрд░ рдорд░реНрдХрд░реА рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рднрд┐рдиреНрди рд╣реИрдВред



рд╡реАрдЖрдИрдкреА рдЕрднрд┐рдпрд╛рди рдЕрдзрд┐рдХ рд░реВрдврд╝рд┐рд╡рд╛рджреА рд╣реИ, рдФрд░ рдмреБрдз рдЕрдзрд┐рдХ рдХрдЯреНрдЯрд░рдкрдВрдереА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рд╛рд╕реНрддреНрд░реАрдп рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛рдУрдВ рдХреА рд╕рднреА рдЕрдирд┐рд╡рд╛рд░реНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ, рдЬреИрд╕реЗ рдХрд┐ рдореБрдЦрд░ / рдкреАрдЫреЗ рд╣рдЯрдирд╛, рд╡рд┐рдлрд▓рддрд╛-рдЪрд╛рд▓рд┐рдд рд▓реВрдк, рдЗрддреНрдпрд╛рджрд┐ рдХреЛ рдкрд╛рд░рд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ I / O рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдЙрди рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдорд┐рд▓рддреЗ-рдЬреБрд▓рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рд╣рд░ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдЗрдирдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ- рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП: WorldIn рдФрд░ WorldOut, рдЬреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдмрд╛рдж рдореЗрдВ рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдЗрди рджреЛ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рдЧрд╛рддрд╛рд░ рджреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдмреАрдЪ рдкреИрд░рд╛рдореАрдЯреНрд░рд┐рдХ рд╕рдВрдмрдВрдз рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЙрдиреНрд╣реЗрдВ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ / рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╡рд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рд╡реАрдЖрдИрдкреА рдбреЗрд╡рд▓рдкрд░реНрд╕, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рди рдХреЗрд╡рд▓ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдмрд▓реНрдХрд┐ рдЕрдкрдиреЗ рдкреНрд░реЛрд▓реЙрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП OOP рднреА рдЬреЛрдбрд╝рд╛ред



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрд╣реБрдд рдХреБрдЫ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред (рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ , рдпрд╛ рдЗрд╕ рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдмреБрдз рд╡рд┐рд╖рдп рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред



рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ youtube рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдПрдкреАрдПрд▓ рд╕рдорд╛рдзрд╛рди рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ:

рдПрдкреАрдПрд▓ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЧреЗрдо рд▓рд╛рдЗрдл ред



рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдкреНрд░реЛрд▓реЙрдЧ рдФрд░ рдПрд░рд▓реИрдВрдЧ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдмреБрдз рдХреЗ рд╡рд╛рдХреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдХрд╛рдлреА рдкрд░рд┐рдЪрд┐рдд рдкрд╛рдПрдВрдЧреЗред



:- module life. :- interface. :- import_module io. :- pred main(io, io). :- mode main(di, uo) is det. :- implementation. :- import_module int, list, require. :- type row == list(int). :- type grid == list(row). :- type sign ---> sum; mul; or_. :- type lr ---> left; right; no. :- type ud ---> up; down; no. eq([R | RR], N) = [eq_row(R, N) | eq(RR, N)]. eq([], _) = []. eq_row([H|T], N) = [(H=N->1;0) | eq_row(T,N)]. eq_row([],_) = []. sum(M1, M2) = R :- R1 = agg(M1, M2, sum) -> R = R1 ; error("can't sum"). or(M1, M2) = R :- R1 = agg(M1, M2, or_) -> R = R1 ; error("can't or"). mul(M1, M2) = R :- R1 = agg(M1, M2, mul) -> R = R1 ; error("can't mul"). sum_lst(L) = R :- ( L = [M1,M2|MM] -> R = sum_lst([sum(M1,M2)|MM]) ; L=[M] -> R = M ; error("sum_lst") ). :-func agg(grid, grid, sign) = grid is semidet. agg([R1 | RR1], [R2 | RR2], Sign) = [agg_rows(R1, R2, Sign) | agg(RR1, RR2, Sign)]. agg([], [], _) = []. :-func agg_rows(row, row, sign) = row is semidet. agg_rows([E1 | EE1], [E2 | EE2], Sign) = [agg_elts(E1, E2, Sign) | agg_rows(EE1, EE2, Sign)]. agg_rows([], [], _) = []. agg_elts(E1, E2, sum) = E1 + E2. agg_elts(E1, E2, mul) = E1 * E2. agg_elts(E1, E2, or_) = E1 \/ E2. hor([H | T], LR) = [hor_row(H, LR) | hor(T, LR)]. hor([], _) = []. head_det(L) = E :- ( L = [], error("empty list") ; L=[E1|_], E = E1 ). gen(T, N) = R :- ( N=0 -> R = [] ; R = [T|gen(T,N-1)] ). vert(M, up) = [zeros(M) | without_last(M)]. vert(M, down) = without_first(M) ++ [zeros(M)]. vert(M, no) = M. zeros(M) = gen(0, length(head_det(M))). without_first(L) = R :- ( L = [], error("without_first fail") ; L=[_ | T], R=T ). without_last(L) = R :- ( L=[], error("without_last fail") ; L=[_], R=[] ; L=[H,H1|T], R=[H|without_last([H1|T])] ). hor_row(L, left) = [0 | without_last(L)]. hor_row(L, right) = without_first(L) ++ [0]. hor_row(L, no) = L. :- func move(grid, ud, lr) = grid. move(M, UD, LR) = hor(vert(M, UD), LR). neighbours(M) = sum_lst([ move(M, up, left), move(M, up, no), move(M, up, right), move(M, no, left), move(M, no, no), move(M, no, right), move(M, down, left), move(M, down, no), move(M, down, right) ]). %% this is GoL algorithm %% next(M) = or(eq(MN,3), eq(mul(M,MN),4)) :- MN = neighbours(M). %% grid pretty-print %% print_m([H|T]) --> print_r(H), nl, print_m(T). print_m([]) --> []. print_r([H | T]) --> print_el(H), print_r(T). print_r([]) --> []. print_el(H) --> print(H=0->".";"#"). trace(M, N) --> ( {N = 0} -> [] ; print_m(M), nl, trace(next(M), N-1) ). m1 = [ [0,1,0,0,0,0,0,0,0,0], [0,0,1,0,0,0,0,0,0,0], [1,1,1,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0] ]. main --> trace(m1,25).
      
      







рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдВрдкреВрд░реНрдг рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рдореБрдЦреНрдп рдкрдВрдХреНрддрд┐ рд╣реИ:



 %% this is GoL algorithm %% next(M) = or(eq(MN,3), eq(mul(M,MN),4)) :- MN = neighbours(M).
      
      







рдЬрд┐рд╕рдХрд╛ рд╢рд╛рдмреНрджрд┐рдХ рдЕрд░реНрде рд╣реИ: рд╕реЗрд▓ рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ рдЬреАрд╡рд┐рдд рд░рд╣реЗрдЧрд╛ рдпрджрд┐ рдЙрд╕рдХреЗ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕реНрд╡рдпрдВ 3 рд╣реИ, рдпрд╛ рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реНрд╡рдпрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, 4 рд╣реИ рдФрд░ рд╕реЗрд▓ рдЬреАрд╡рд┐рдд рд╣реИред



рдкрд╛рд░рд╛ рдХреА рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрд╕рдХреА рдкреНрд░рдХрд╛рд░ рдХреА рдХрдЯреМрддреА рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдареАрдХ рд╣реИрд╕реЗрд▓ рдХреА рддрд░рд╣ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, --infer-all рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ:



 D:\stuff\test\mercury>mmc.bat --infer-all -s hlc.gc life.m life.m:021: Inferred :- func eq(list.list(list.list(T2)), T2) = life.m:021: list.list(list.list(int)). life.m:024: Inferred :- func eq_row(list.list(T2), T2) = list.list(int). life.m:027: Inferred :- func sum(list.list(list.list(int)), life.m:027: list.list(list.list(int))) = list.list(list.list(int)). life.m:028: Inferred :- func or(list.list(list.list(int)), life.m:028: list.list(list.list(int))) = list.list(list.list(int)). life.m:029: Inferred :- func mul(list.list(list.list(int)), life.m:029: list.list(list.list(int))) = list.list(list.list(int)). life.m:031: Inferred :- func sum_lst(list.list(list.list(list.list(int)))) = life.m:031: list.list(list.list(int)). life.m:047: Inferred :- func agg_elts(int, int, life.sign) = int. life.m:051: Inferred :- func hor(list.list(list.list(int)), life.lr) = life.m:051: list.list(list.list(int)). life.m:054: Inferred :- func head_det(list.list(T)) = T. life.m:060: Inferred :- func gen(T, int) = list.list(T). life.m:066: Inferred :- func vert(list.list(list.list(int)), life.ud) = life.m:066: list.list(list.list(int)). life.m:070: Inferred :- func zeros(list.list(list.list(T))) = list.list(int). life.m:072: Inferred :- func without_first(list.list(T)) = list.list(T). life.m:078: Inferred :- func without_last(list.list(T)) = list.list(T). life.m:086: Inferred :- func hor_row(list.list(int), life.lr) = list.list(int). life.m:093: Inferred :- func neighbours(list.list(list.list(int))) = life.m:093: list.list(list.list(int)). life.m:110: Inferred :- func next(list.list(list.list(int))) = life.m:110: list.list(list.list(int)). life.m:115: Inferred :- pred print_m(list.list(list.list(int)), io.state, life.m:115: io.state). life.m:115: Inferred :- mode print_m(in, di, uo) is det. life.m:118: Inferred :- pred print_r(list.list(int), io.state, io.state). life.m:118: Inferred :- mode print_r(in, di, uo) is det. life.m:121: Inferred :- pred print_el(int, io.state, io.state). life.m:121: Inferred :- mode print_el(in, di, uo) is det. life.m:123: Inferred :- pred trace(list.list(list.list(int)), int, io.state, life.m:123: io.state). life.m:123: Inferred :- mode trace(in, di, di, uo) is det. life.m:131: Inferred :- func m1 = list.list(list.list(int)).
      
      







(рдЗрд╕ рдХреБрдВрдЬреА рдХреЗ рдмрд┐рдирд╛, рд╕рднреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛрдб рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП)ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЙрдиреНрдЪ рдЧреНрд▓рд╛рдЗрдбрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:



 D:\stuff\test\mercury>life.exe .#........ ..#....... ###....... .......... .......... .......... .......... .......... .......... .......... #.#....... .##....... .#........ .......... .......... .......... .......... .......... .......... ..#....... #.#....... .##....... .......... .......... .......... .......... .......... .......... .#........ ..##...... .##....... .......... .......... .......... .......... .......... .......... ..#....... ...#...... .###...... .......... .......... .......... .......... .......... .......... .......... .#.#...... ..##...... ..#....... .......... .......... .......... .......... .......... .......... ...#...... .#.#...... ..##...... .......... .......... .......... .......... .......... .......... ..#....... ...##..... ..##...... .......... .......... .......... .......... .......... .......... ...#...... ....#..... ..###..... .......... .......... .......... .......... .......... .......... .......... ..#.#..... ...##..... ...#...... .......... .......... .......... .......... .......... .......... ....#..... ..#.#..... ...##..... .......... .......... .......... .......... .......... .......... ...#...... ....##.... ...##..... .......... .......... .......... .......... .......... .......... ....#..... .....#.... ...###.... .......... .......... .......... .......... .......... .......... .......... ...#.#.... ....##.... ....#..... .......... .......... .......... .......... .......... .......... .....#.... ...#.#.... ....##.... .......... .......... .......... .......... .......... .......... ....#..... .....##... ....##.... .......... .......... .......... .......... .......... .......... .....#.... ......#... ....###... .......... .......... .......... .......... .......... .......... .......... ....#.#... .....##... .....#.... .......... .......... .......... .......... .......... .......... ......#... ....#.#... .....##... .......... .......... .......... .......... .......... .......... .....#.... ......##.. .....##... .......... .......... .......... .......... .......... .......... ......#... .......#.. .....###.. .......... .......... .......... .......... .......... .......... .......... .....#.#.. ......##.. ......#... .......... .......... .......... .......... .......... .......... .......#.. .....#.#.. ......##.. .......... .......... .......... .......... .......... .......... ......#... .......##. ......##.. .......... .......... .......... .......... .......... .......... .......#.. ........#. ......###.
      
      







рд╢рд╛рдпрдж рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред



рдХреБрдЫ рдФрд░ рд▓рд┐рдВрдХ:

  1. рд╡рд┐рдВрдбреЛрдЬ рдкрд╛рд░рд╛ рднрд╛рд╖рд╛ рд╡рд┐рддрд░рдг рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ: code.google.com/p/winmercury
  2. рдЗрд╕ YP рдкрд░ рдХреБрдЫ рдФрд░ рдЙрджрд╛рд╣рд░рдг: langexplr.blogspot.com/search/label/mercury
  3. рддрд╛рдЬрд╝рд╛ рдкреНрд░рд╕реНрддрд╛рд╡: 1 , 2
  4. K рдФрд░ q (рдПрдкреАрдПрд▓ рдХреЗ рд╡рдВрд╢рдЬ, kx.com рдХреЗ рдЦреЗрд▓ рдЬреАрд╡рди рдХреЗ рд╡рди-рд▓рд╛рдЗрдирд░реНрд╕ рдХреА рдПрдХ рдЬреЛрдбрд╝реА): k , q




All Articles