рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреЗ рдкрд╛рдардХ рдЖрд╡реЗрджрди рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдЯреНрдЯрд░рдкрдВрдереА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рд╣реА рд░реВрдк рд╕реЗ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд▓реЗрдЦ рдмрд╣реБрдд рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рд┐рджреНрдзрд╛рдВрдд рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдЪреНрдЫрд╛рдИ рдФрд░ рдмреБрд░рд╛рдИ рдХреЗ рд╕рдВрддреБрд▓рди рдХреЛ рдмрд╣рд╛рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджрдмрд╛рдЬреА рдХрд░рддрд╛ рд╣реВрдВред
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдХреЗрд╡рд▓ рд╣рд┐рдорд╢реИрд▓ рдХреА рдиреЛрдХ рдХреЛ рдкреНрд░рдХрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкрд┐рдХреЛ рд▓рд┐рд╕реНрдк рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдВрдЯрд░реНрдирд▓реНрд╕, рдбрд┐рд╕реНрдЯреНрд░рд┐рдмреНрдпреВрдЯреЗрдб рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рд╕рдВрдЧрдарди, рдбрд┐рдмрдЧрд┐рдВрдЧ, рдлрдВрдХреНрд╢рдирд▓ I / O, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрдИ рд╡рд┐рд░рд╛рд╕рдд, PicoLisp Prolog рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдЕрдВрдХ рдмрдЪреЗ рд╣реБрдП рдереЗ ...
рдореБрдЭреЗ рдЕрднреА рднреА рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдШрд░реЗрд▓реВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЗрд╕ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЯреВрд▓ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рд╕рд╛рд╡рдзрд╛рдиреА, рдХрдЯ рдХреЗ рддрд╣рдд рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд╛рда рдФрд░ рдХреЛрд╖реНрдардХ!
abu@software-lab.dePicoLisp рдкрд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕
┬й рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд▓реИрдмред рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдмрд░реНрдЧрд░
рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ PicoLisp рдореЗрдВ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рдЪрдп рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдПрдХреНрд╕рдПрдЪрдЯреАрдПрдордПрд▓ / рд╕реАрдПрд╕рдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ (рдкрд┐рдЫрд▓реЗ рдЬрд╛рд╡рд╛-рдПрдбрдмреНрд▓реНрдпреВрдЯреА, рдЬрд╛рд╡рд╛-рд╕реНрд╡рд┐рдВрдЧ рдФрд░ рд╕рд╛рджреЗ-рдПрдЪрдЯреАрдПрдордПрд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд) рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди, рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдХреБрдХреАрдЬрд╝, рдпрд╛ рд╕реАрдПрд╕рдПрд╕ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред
рд╕рд░рд▓ HTTP / HTML рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ: рдпрд╣ рдХрд┐рд╕реА рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ ("@ lib / scrape.l") рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, CSS
рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓реЗрдЖрдЙрдЯ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛
рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ
рд╕рд╛рде рдмреНрд░рд╛рдЙрдЬрд╝рд░ рддреЗрдЬреА рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдЬрд╡рд╛рдм рджреЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдпрд╣ рдврд╛рдВрдЪрд╛ рдЙрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рднреА рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реАрдПрд╕рдПрд╕ рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ w3m рдЯреЗрдХреНрд╕реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рднреА рдкрд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред
PicoLisp рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реА:
PicoLisp рд╕рдВрджрд░реНрдн рдФрд░
PicoLisp рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ ред HTML рдФрд░ рдХреБрдЫ CSS рдФрд░ HTTP рдХрд╛ рдЬреНрдЮрд╛рди рдЧреНрд░рд╣рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ PicoLisp рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реНрдерд╛рдкрдирд╛ (рд╕реНрдерд╛рдкрдирд╛ рджреЗрдЦреЗрдВ) рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕реНрдереИрддрд┐рдХ рдкреЗрдЬ
PicoLisp рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╕реНрдЯреЗрдЯрд┐рдХ HTML рдкреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЕрдХреЗрд▓реЗ рдмрд╣реБрдд рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реАрдзреЗ HTML рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдФрд░ рдЕрдиреНрдп рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛
рдПрдХ рдиреНрдпреВрдирддрдо рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PicoLisp рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ "project.l" рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рд▓рд╛рдЗрдиреЗрдВ рджрд░реНрдЬ рдХрд░реЗрдВред
######################################################################## (html 0 "Hello" "@lib.css" NIL "Hello World!" ) ########################################################################
(рд╣рдо рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рдореНрди рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗред рдЬрдм рднреА рдЖрдк рд▓рд╛рдЗрдиреЛрдВ ('#####') рдХреЗ рдмреАрдЪ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмрд╕ рдЗрд╕реЗ "рдкреНрд░реЛрдЬреЗрдХреНрдЯ.рдПрд▓" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ рдФрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ "рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ"
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд░реНрд╡рд░ рд▓реЙрдиреНрдЪ
рдПрдХ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВ рдФрд░ PicoLisp рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВ
$ pil @lib/http.l @lib/xhtml.l @lib/form.l --server 8080 project.l +
рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрдЧрд╛ред рд╕рд░реНрд╡рд░ рдКрдкрд░ рд╣реИ рдФрд░ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЖрдк рдЗрд╕ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ
Ctrl-C
рджрдмрд╛рдХрд░ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ '
killall pil
' рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред
(рдЖрдЧреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ HTTP рд╕рд░реНрд╡рд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ)
рдЕрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ URL '
http: // localhost: 8080 ' рдЦреЛрд▓реЗрдВред рдЖрдкрдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рдкреГрд╖реНрда рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдКрдкрд░ рдХреА рд▓рд╛рдЗрди рдбрд┐рдмрдЧрд░ (рд╡рд┐рдХрд▓реНрдк "+"), HTTP рд╕рд░реНрд╡рд░ рдХреЛрдб ("@ lib / http.l"), XHTML рдлрд╝рдВрдХреНрд╢рдВрд╕ ("@ lib / xhtml.l") рдФрд░ GUI рдлреНрд░реЗрдорд╡рд░реНрдХ ("@ lib / form.l") рдХреЛ рд▓реЛрдб рдХрд░рддреА рд╣реИ , рдпрд╣ рдмрд╛рдж рдореЗрдВ
рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛)ред
рдлрд┐рд░
server
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреЛрд░реНрдЯ рдирдВрдмрд░ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ URL рдХреЗ рд╕рд╛рде рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреЛрд░реНрдЯ рдХреЛ рд╕реБрдиреЗрдЧрд╛ред рдЬрдм рднреА рдкреЛрд░реНрдЯ 8080 рдкрд░ GET рдХрд╛ рдЕрдиреБрд░реЛрдз рдЖрддрд╛ рд╣реИ, рддреЛ "project.l" рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЙрд╕реЗ
рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рд▓реЛрдб)рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди, рд╡рд░реНрддрдорд╛рди рдЖрдЙрдЯрдкреБрдЯ рдЪреИрдирд▓ (STDOUT) рдореЗрдВ рджрд░реНрдЬ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред "Project.l" рдореЗрдВ рдХреЛрдб HTML (рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬреЛ рд╕рдордЭрддрд╛ рд╣реИ рдПрдХ рдФрд░ рдкреНрд░рд╛рд░реВрдк) рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
URL рд╕рд┐рдВрдЯреИрдХреНрд╕
рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдпреВрдЖрд░рдПрд▓ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХрд░рддреЗ рд╕рдордп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдереЛрдбрд╝рд╛ рд╡рд┐рд╢реЗрд╖ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред URL рдХрд╛ "рдкрде" рд╣рд┐рд╕реНрд╕рд╛ рд╡рд╣ рд╣реИ рдЬреЛ рдЯреНрд░рд┐рдорд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ
- рдкреНрд░реЛрдЯреЛрдХреЙрд▓, рд╣реЛрд╕реНрдЯ, рдФрд░ рдкреЛрд░реНрдЯ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ,
- рдЕрдВрддрд┐рдо рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдФрд░ рддрд░реНрдХ,
рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЧрдИред рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг:
- рдпрджрд┐ рдкрде рдПрдХ рд╡рд┐рд╕реНрдордпрд╛рджрд┐рдмреЛрдзрдХ рдмрд┐рдВрджреБ ('!') рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдмрд╛рдХреА (рдмрд┐рдирд╛ '!') рдХреЛ рд▓рд┐рд╕реНрдк рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд╛рдо рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рдмрд╛рдж рд╕рднреА рддрд░реНрдХ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
- рдпрджрд┐ рдкрде ".l" (рдбреЙрдЯ рдФрд░ "L" рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд▓рд┐рд╕реНрдк рдлрд╝рд╛рдЗрд▓ рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рддрдм рд▓реЛрдб (рд▓реЛрдб) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╣ рд╕рдмрд╕реЗ рдЖрдо рдорд╛рдорд▓рд╛ рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред
- рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡реИрд╢реНрд╡рд┐рдХ рдорд╛рдЗрдо
*Mimes
рдкреНрд░рдХрд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдорд╛рдЗрдо-рдкреНрд░рдХрд╛рд░ рдФрд░ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд▓реА рдЧрдИ рдЕрдзрд┐рдХрддрдо-рдЖрдпреБ рдорд╛рди рдХреЗ рд╕рд╛рде рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред - рдЕрдиреНрдпрдерд╛, рдлрд╝рд╛рдЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдорд╛рдЗрдо рдкреНрд░рдХрд╛рд░ "рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдСрдХреНрдЯреЗрдЯ-рд╕реНрдЯреНрд░реАрдо" рдФрд░ рдЕрдзрд┐рдХрддрдо 1 рд╕реЗрдХрдВрдб рдХреА рдЙрдореНрд░ рдХреЗ рд╕рд╛рде рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди
mime
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдмрд┐рдирд╛
*Mimes
рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдпрд╛ рд╕рдВрд╢реЛрдзрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
(mime "doc" "application/msword" 60)
рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдЖрдпреБ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдорд╛рдЗрдо рдкреНрд░рдХрд╛рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдкрде рдФрд░ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдХреЗ рдмрд╛рдж URL рдореЗрдВ рджрд┐рдП рдЧрдП рддрд░реНрдХреЛрдВ рдХреЗ рдорд╛рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЗрдирдХреЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рд▓рд┐рд╕реНрдк рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
- рдПрдХ рдирд┐рдпрдорд┐рдд рдкреНрд░рддреАрдХ (рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддреАрдХ) рдПрдХ рдбреЙрд▓рд░ рдкреНрд░рддреАрдХ ("$") рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ
- рд╕рдВрдЦреНрдпрд╛ рдПрдХ рдкреНрд▓рд╕ рдЪрд┐рд╣реНрди (+) рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ
- рдПрдХ рдмрд╛рд╣рд░реА рдЪрд░рд┐рддреНрд░ (рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ) рдбреИрд╢ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ ('-')
- рд╕реВрдЪреА (рдХреЗрд╡рд▓ рдПрдХрд▓-рд╕реНрддрд░) рдЕрдВрдбрд░рд╕реНрдХреЛрд░ ('_') рд╕реЗ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИ
- рдЕрдиреНрдпрдерд╛, рдпрд╣ рдПрдХ рдкрд╛рд░рдЧрдорди рдЪрд░рд┐рддреНрд░ рд╣реИ (рдирд┐рдпрдорд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ)
рдЗрд╕ рддрд░рд╣, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕реАрдзреЗ URL рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реБрд░рдХреНрд╖рд╛
рдмреЗрд╢рдХ, рдпрд╣ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕реБрд░рдХреНрд╖рд╛ рдЫреЗрдж рд╣реИ рдпрджрд┐ рдХрд┐рд╕реА рднреА рд▓рд┐рд╕реНрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реАрдзреЗ рдпреВрдЖрд░рдПрд▓ рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ URL рдореЗрдВ рдХреМрди рд╕реА рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред рд╕рд░реНрд╡рд░ рд╡реИрд╢реНрд╡рд┐рдХ
* рдЪреЗрдХ рдЪрд░ рдХреА
рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдЗрд╕рдХрд╛ рдореВрд▓реНрдп
NIL
рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрд╕ рдЪреАрдЬ рддрдХ рдкрд╣реБрдВрдЪ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреАред
рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ
*Allow
рд╕реАрдзреЗ рдмрджрд▓реЗрдВ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди
рдЕрдиреБрдордд рдФрд░
рдЕрдиреБрдордд рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
(allowed ("app/") "!start" "@lib.css" "customer.l" "article.l" )
рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЖрд╡реЗрджрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛, рдкреНрд░рд╛рд░рдВрдн рдХрд╛рд░реНрдпреЛрдВ рдФрд░ @ lib.css, рдХрд╕реНрдЯреЛрдо рдХрд╕реНрдЯрдореЗрд▓ рдФрд░ рд▓реЗрдЦ.рдПрд▓ рдлрд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдмрд╛рдж рдореЗрдВ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ,
*Allow
рд╕рд╛рде рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
(allow "!foo") (allow "newdir/" T)
рдпрд╣ foo рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдЕрдиреБрдордд рддрддреНрд╡реЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ newdir / рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓ .pw
рд╕реБрд░рдХреНрд╖рд╛ рдирд┐рдЧрд░рд╛рдиреА рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП (рдореБрдЦреНрдп рд░реВрдк рд╕реЗ
psh
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдмрд╛рдж рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ), PicoLisp рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ ".pw" рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдордирдорд╛рдиреА рдбреЗрдЯрд╛ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рддрд░реАрдХрд╛ "@ lib / http.l" рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд
pw
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред
$ pil @lib/http.l -'pw 12' -bye
рдХреГрдкрдпрд╛ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдПрдВред
html
рдлрд╝рдВрдХреНрд╢рди
рдЕрдм рд╣рдорд╛рд░реЗ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЖрдк рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЗ рд░реВрдк рдореЗрдВ "рдкреНрд░реЛрдЬреЗрдХреНрдЯ.рд▓" рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ
######################################################################## (prinl "HTTP/1.0 200 OK^M") (prinl "Content-Type: text/html; charset=utf-8") (prinl "^M") (prinl "<html>") (prinl "Hello World!") (prinl "</html>") ########################################################################
рд▓реЗрдХрд┐рди
html
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
html
рдПрдХ рдкреНрд░рд┐рдВрдЯ рдлрдВрдХреНрд╢рди рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реИред рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк PicoLisp Shell (
psh
) рдХреЛ рд╕рд░реНрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП
".pw" рдлрд╝рд╛рдЗрд▓ рдЬрдирд░реЗрдЯ рдХрд░рдиреА рдереА) рдФрд░
html
рдлрд╝рдВрдХреНрд╢рди рджрд░реНрдЬ рдХрд░реЗрдВред
$ /usr/lib/picolisp/bin/psh 8080 : (html 0 "Hello" "@lib.css" NIL "Hello World!") HTTP/1.0 200 OK Server: PicoLisp Date: Fri, 29 Dec 2006 07:28:58 GMT Cache-Control: max-age=0 Cache-Control: no-cache Content-Type: text/html
html
рд▓рд┐рдП рддрд░реНрдХ:
0
: рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреИрд╢ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдЖрдпреБ рдорд╛рди (рд╕реЗрдХрдВрдб рдореЗрдВ, рд╢реВрдиреНрдп рдХрд╛ рдЕрд░реНрде "рдиреЛ-рдХреИрд╢") рд╣реИред рдЖрдк рдЙрди рдкреГрд╖реНрдареЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдмрджрд▓рддреЗ рд╣реИрдВ, рдпрд╛ рдХреИрд╢ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NIL
ред"Hello"
: рдкреГрд╖реНрда рдХрд╛ рдирд╛рдоред"@lib.css"
: CSS рдлрд╝рд╛рдЗрд▓ рдирд╛рдоред рдпрджрд┐ рдЖрдк CSS рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ NIL
рдкрд╛рд╕ рдХрд░реЗрдВ, рдпрд╛ рдпрджрд┐ рдЖрдк рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ CSS рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдлрд╝рд╛рдЗрд▓ рдирд╛рдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреАредNIL
: body
рдЯреИрдЧ рдХреЗ рд▓рд┐рдП CSS рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ (рдиреАрдЪреЗ CSS рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ)ред
рдЗрди рдЪрд╛рд░ рддрд░реНрдХреЛрдВ рдХреЗ рдмрд╛рдж, рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рдкреГрд╖реНрда рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреА рдЧрдгрдирд╛ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреА рдЬрд╛рддреА рд╣реИред
рдпреЗ рдирд┐рдпрдо рд╕рд╛рдорд╛рдиреНрдп рдЧрдгрдирд╛ рдирд┐рдпрдореЛрдВ рд╕реЗ рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рд╣реИрдВ:
- рдпрджрд┐ рддрд░реНрдХ рдПрдХ рдкрд░рдорд╛рдгреБ (рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рд╡рд░реНрдг / рд╕реНрдЯреНрд░рд┐рдВрдЧ) рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рддреБрд░рдВрдд рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- рдЕрдиреНрдпрдерд╛ (рдПрдХ рд╕реВрдЪреА), рдЗрд╕рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рд▓рд┐рд╕реНрдк рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдпреЗ рдкреНрд░рд┐рдВрдЯ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЗ рдХреБрдЫ рд░реВрдк рд╣реИрдВ)ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реА рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рднреА рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
######################################################################## (html 0 "Hello" "@lib.css" NIL (prinl "Hello World!") ) ########################################################################
рд╕рдмрд╕реЗ рдЖрдо рдореБрджреНрд░рдг рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдХреБрдЫ HTML рдЯреИрдЧ рд╣реИрдВ:
######################################################################## (html 0 "Hello" "@lib.css" NIL (<h1> NIL "Hello World!") (<br> "This is some text.") (ht:Prin "And this is a number: " (+ 1 2 3)) ) ########################################################################
<h1>
рдФрд░
<br>
рдЯреИрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣реИрдВред
<h1>
рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ CSS рд╡рд┐рд╢реЗрд╖рддрд╛ рд▓реЗрддрд╛ рд╣реИред
Ht рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ
ht:Prin
рдмрдЬрд╛рдп
prin
ред
ht:Prin
рдлрд╝рдВрдХреНрд╢рди рдХреЛ HTML рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рдкреНрд░рддреНрдпрдХреНрд╖ рдореБрджреНрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд╡рд░реНрдгреЛрдВ рд╕реЗ рдмрдЪ рдЬрд╛рддрд╛ рд╣реИред
рд╕реАрдПрд╕рдПрд╕ рдЧреБрдг
рдКрдкрд░
html
рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдХрдИ
рдЯреИрдЧ рдлрд╝рдВрдХреНрд╢рди рд╕реАрдПрд╕рдПрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдПрдЯрдо, рдХреЙрдиреНрд╕ рдкреЗрдпрд░ рдпрд╛ рдХреЙрдиреНрд╕ рдкреЗрдпрд░ рдХреА рд▓рд┐рд╕реНрдЯ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ
<h1>
рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред
рдПрдХ рдкрд░рдорд╛рдгреБ (рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЪрд░рд┐рддреНрд░ рдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдХреЛ рд╕реАрдПрд╕рдПрд╕ рд╡рд░реНрдЧ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИ
: (<h1> 'foo "Title") <h1 class="foo">Title</h1>
рдХрдВрд╕-рдЬреЛрдбрд╝реА рдХреЗ рд▓рд┐рдП, CAR рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдФрд░ CDR рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ
: (<h1> '(id . bar) "Title") <h1 id="bar">Title</h1>
рдЗрд╕рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рдЬреЛрдбрд╝реЗ рдХреА рд╕реВрдЪреА рд╡рд┐рд╢реЗрд╖рддрд╛-рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ рдХрд╛ рдПрдХ рд╕реЗрдЯ рджреЗрддреА рд╣реИ
: (<h1> '((id . "abc") (lang . "de")) "Title") <h1 id="abc" lang="de">Title</h1>
рдЯреИрдЧ рдХрд╛рд░реНрдп
рд╕рднреА рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд XHTML рдЯреИрдЧ рдлрд╝рдВрдХреНрд╢рди "@ lib / xhtml.l" рдореЗрдВ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЙрдирдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдФрд░ PicoLisp рдХрдВрд╕реЛрд▓ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ.l рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд░реАрдлрд╝реНрд░реЗрд╢ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред
рдПрдХ рдЙрдкрдпреБрдХреНрдд PicoLisp рдХрдВрд╕реЛрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ PicoLisp Shell (
psh
) рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ (рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛ рдФрд░ рдЖрдкрдиреЗ
".pw" рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рд╣реЛ)
$ /usr/lib/picolisp/bin/psh 8080 :
рдпрд╛ рдореЙрдбреНрдпреВрд▓ "@ lib / xhtml.l" рдХреЛ рд▓реЛрдб рдХрд░рдХреЗ рджреБрднрд╛рд╖рд┐рдпрд╛ рдЪрд▓рд╛рдПрдВ
$ pil @lib/http.l @lib/xhtml.l + :
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрди рд╕рднреА рдЯреИрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЯреИрдЧ рдлрд╝рдВрдХреНрд╢рди
рдХреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ
рдирд┐рдпрдо рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред
рд╕рд░рд▓ рдЯреИрдЧ
рдЕрдзрд┐рдХрд╛рдВрд╢ рдЯреИрдЧ рдХрд╛рд░реНрдп рд╕рд░рд▓ рдФрд░ рд╕реАрдзреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рд┐рд░реНрдл рдЕрдкрдиреА рджрд▓реАрд▓реЗрдВ рдЫрд╛рдкрддреЗ рд╣реИрдВред
: (<br> "Hello world") Hello world<br/> : (<em> "Hello world") <em>Hello world</em>
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢
рд╕реАрдПрд╕рдПрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдПрдХ
рд╕реЗрдЯ рдХреЛ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ
<h1>
рдКрдкрд░)
: (<div> 'main "Hello world") <div class="main">Hello world</div> : (<p> NIL "Hello world") <p>Hello world</p> : (<p> 'info "Hello world") <p class="info">Hello world</p>
рдЗрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдПрдХ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдПрдХ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдШреЛрдВрд╕рд▓реЗ рдХреА рдЧрд╣рд░рд╛рдИ рд╣реЛ рд╕рдХрддреА рд╣реИ (рдЬрдм рддрдХ рдХрд┐ HTML рдорд╛рд░реНрдХрдЕрдк рд░рд╣рддрд╛ рд╣реИ)
: (<div> 'main (<h1> NIL "Head") (<p> NIL (<br> "Line 1") "Line" (<nbsp>) (+ 1 1) ) ) <div class="main"><h1>Head</h1> <p>Line 1<br/> Line 2</p> </div>
рд╕реВрдЪрд┐рдпреЛрдВ
<ol>
рдФрд░
<ul>
рдЯреИрдЧ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд HTML рд╕реВрдЪрд┐рдпрд╛рдБ рдЖрдкрдХреЛ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ "project.l" рдХреА рдХреЙрдкреА рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ:
######################################################################## (html 0 "Unordered List" "@lib.css" NIL (<ul> NIL (<li> NIL "Item 1") (<li> NIL "Sublist 1" (<ul> NIL (<li> NIL "Item 1-1") (<li> NIL "Item 1-2") ) ) (<li> NIL "Item 2") (<li> NIL "Sublist 2" (<ul> NIL (<li> NIL "Item 2-1") (<li> NIL "Item 2-2") ) ) (<li> NIL "Item 3") ) ) ########################################################################
рдпрд╣рд╛рдВ рдЖрдк рдЗрд╕ рдкреЗрдбрд╝ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдореЗрдВ рдЕрдиреНрдп рдЯреИрдЧ рдХрд╛рд░реНрдпреЛрдВ рд╕рд╣рд┐рдд, рдордирдорд╛рдирд╛ рдХреЛрдб рднреА рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдЯреЗрдмрд▓
рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рддрд░рд╣, рдЖрдк
<table>
рдФрд░
<row>
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЛ-рдЖрдпрд╛рдореА рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рд╕рдВрдЦреНрдпрд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рд╡рд░реНрдЧреЛрдВ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
######################################################################## (html 0 "Table" "@lib.css" NIL (<table> NIL NIL NIL (for N 10 # A table with 10 rows (<row> NIL N (prin (* NN))) ) ) ) # and 2 columns ########################################################################
<table>
рд▓рд┐рдП рдкрд╣рд▓рд╛ рддрд░реНрдХ рдирд┐рдпрдорд┐рдд CSS рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЗрдбрд░ рд╣реИ, рдФрд░ рддреАрд╕рд░рд╛ рдХреЙрд▓рдо рд╣реЗрдбрд░ рдХреА рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реВрдЪреА рд╣реИред рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ, рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рд╕реНрддрдВрдн рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░ рдореЗрдВ CSS рд╡рд┐рд╢реЗрд╖рддрд╛ рдФрд░ рд╕реНрддрдВрдн рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП CDR рдореЗрдВ рдПрдХ рдЯреИрдЧ рдирд┐рдХрд╛рдп рд╣реИред
рд╢рд░реАрд░
<table>
рдореЗрдВ
<row>
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреЙрд▓ рд╣реИрдВред рдлрд╝рдВрдХреНрд╢рди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдПрдХ рдЕрд▓рдЧ рдХреЙрд▓рдо рдореЗрдВ рдЬрд╛рдПрдЧреАред рдпрджрд┐ рд╕реНрддрдВрдн рд╢реАрд░реНрд╖рдХ рдФрд░
<row>
рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░
<td>
рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдФрд░ рд╕реНрддрдВрдн рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реАрдПрд╕рдПрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдЗрдП рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ - CSS рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдРрд╕реА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдФрд░ рдлрд┐рд░ рдХрдХреНрд╖рд╛ рдХрд╛ рдирд╛рдо
<table>
), рджреЛрдиреЛрдВ рд╕реНрддрдВрднреЛрдВ рдХреЛ рджрд╛рдИрдВ рдУрд░ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░реЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ рдЪрд░ (рд▓рд╛рд▓ рдФрд░ рдиреАрд▓реЗ) рд░рдВрдЧреЛрдВ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ
######################################################################## (html 0 "Table" "@lib.css" NIL (<table> '((width . "200px") (style . "border: dotted 1px;")) # table style "Square Numbers" # caption '((align "Number") (align "Square")) # 2 headers (for N 10 # 10 rows (<row> (xchg '(red) '(blue)) # red or blue N # 2 columns (prin (* NN) ) ) ) ) ) ########################################################################
рдпрджрд┐ рдЖрдк рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдПрдХ рд╕реЗрд▓ рдХрдИ рд╕реНрддрдВрднреЛрдВ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░ рд▓реЗ, рддреЛ рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░
<row>
рд░реВрдк рдореЗрдВ "
-
" рдкреНрд░рддреАрдХ рдХреЛ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рджрд╛рдИрдВ рдУрд░ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "
-
" рд╡рд░реНрдгреЛрдВ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред
рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдЯреИрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕реАрдзреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ,
<th>
,
<tr>
рдФрд░
<td>
ред
рдпрджрд┐ рдЖрдкрдХреЛ рдШрдЯрдХреЛрдВ рдХреА рджреЛ-рдЖрдпрд╛рдореА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдФрд░ рднреА рд╕рд░рд▓
<grid>
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
######################################################################## (html 0 "Grid" "@lib.css" NIL (<grid> 3 "A" "B" "C" 123 456 789 ) ) ########################################################################
рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЙрд▓рдо рдХреА рд╕рдВрдЦреНрдпрд╛ (рдпрд╣рд╛рдВ: 3) рд╣реИ, рдФрд░ рдлрд┐рд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реИред рдПрдХ рдирдВрдмрд░ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рд╕реАрдПрд╕рдПрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рднреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реВрдЪреА рдХреА рд▓рдВрдмрд╛рдИ рдХреЙрд▓рдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧреАред рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
(<grid> '(NIL NIL right)
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рддреАрд╕рд░рд╛ рдХреЙрд▓рдо рджрд╛рдИрдВ рдУрд░ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдореЗрдиреВ рдФрд░ рдЯреИрдм (рдЯреИрдм)
рджреЛ рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЯреИрдЧ рдлрд╝рдВрдХреНрд╢рди
<menu>
рдФрд░
<tab>
ред рдЬрдм рдЕрд▓рдЧ рд╕реЗ рдпрд╛ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдПрдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрдирд╛рддреЗ рд╣реИрдВ
- рдореЗрдиреВ рдЖрдЗрдЯрдо рдЬрд┐рд╕рдореЗрдВ рдЖрдк рд╕рдмрдореЗрдиреВ рдХреЛ рдЦреЛрд▓ рдФрд░ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- рд╡рд┐рднрд┐рдиреНрди рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдк рдореЗрдиреВ рдЖрдЗрдЯрдо
- рдЯреИрдм (рдЯреИрдм), рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ URL рдПрдХ рд╣реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред l рдкреЗрдЬ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:
######################################################################## (html 0 "Menu+Tab" "@lib.css" NIL (<div> '(id . menu) (<menu> ("Item" "project.l") # Top level item (NIL (<hr>)) # Plain HTML (T "Submenu 1" # Submenu ("Subitem 1.1" "project.l") (T "Submenu 1.2" ("Subitem 1.2.1" "project.l") ("Subitem 1.2.2" "project.l") ("Subitem 1.2.3" "project.l") ) ("Subitem 1.3" "project.l") ) (T "Submenu 2" ("Subitem 2.1" "project.l") ("Subitem 2.2" "project.l") ) ) ) (<div> '(id . main) (<h1> NIL "Menu+Tab") (<tab> ("Tab1" (<h3> NIL "This is Tab 1") ) ("Tab2" (<h3> NIL "This is Tab 2") ) ("Tab3" (<h3> NIL "This is Tab 3") ) ) ) ) ########################################################################
<menu>
рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛ рдПрдХ рдХреНрд░рдо рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд┐рд╕реНрдк рд╕реВрдЪреА рд╣реИ:
NIL
: рдирд┐рд╖реНрдХреНрд░рд┐рдп рдореЗрдиреВ рдЖрдЗрдЯрдо, рдмрд╛рдХреА рд╕реВрдЪреА рдореЗрдВ рдордирдорд╛рдиреЗ рдХреЛрдб (рдЖрдорддреМрд░ рдкрд░ HTML рдЯреИрдЧ) рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВредT
: рджреВрд╕рд░рд╛ рддрддреНрд╡ рд╕рдмрдореЗрдиреВ рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ рдЗрд╕ рдирд╛рдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдмрдореЗрдиреВ рдЦреБрд▓ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╕реВрдЪреА рдХреА рдкреВрдВрдЫ рдПрдХ рд╕рдмрдореЗрдиреВ (рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдШреЛрдВрд╕рд▓реЗ рдХреА рдЧрд╣рд░рд╛рдИ рдЧрд╣рд░рд╛рдИ) рдХреЛ рдкреБрди: рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИред- рдЕрдиреНрдпрдерд╛: рдПрдХ рдореЗрдиреВ рдЖрдЗрдЯрдо рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рдХрд╛рд░реНрд░рд╡рд╛рдИ (рдПрдХ рд╕рдмрдореЗрдиреВ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реВрдЪреА рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ рдореЗрдиреВ рддрддреНрд╡ рдХрд╛ рдирд╛рдо рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ рддрддреНрд╡ рд╕рдВрдмрдВрдзрд┐рдд URL рд╣реИред
<tab>
рдЙрдкрдкреГрд╖реНрдареЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЗрд╡рд▓ рдЯреИрдм рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ рдлрд┐рд░ рдордирдорд╛рдирд╛ рдХреЛрдб (рдЖрдорддреМрд░ рдкрд░ HTML рдЯреИрдЧ)ред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдореЗрдиреВ рдФрд░ рдПрдХ рдЯреИрдм рд╕рдХреНрд░рд┐рдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдкрд░рд╕реНрдкрд░ рд░реВрдк
HTML рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛
<form>
рдФрд░
<input>
рддрддреНрд╡реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ, рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HTTP POST рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред
"@ Lib / xhtml.l"
<post>
рдирд╛рдордХ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЯреИрдЧ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ HTML рд░реВрдкреЛрдВ рдХреА рдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдПрдВрдЧреЗ:
######################################################################## (html 0 "Simple Form" "@lib.css" NIL (<post> NIL "project.l" (<field> 10 '*Text) (<submit> "Save") ) ) ########################################################################
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЗрдирдкреБрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдлреАрд▓реНрдб рдХреЛ
*Text
рдЧреНрд▓реЛрдмрд▓ рд╡реИрд░рд┐рдПрдмрд▓ рд╕реЗ рдмрд╛рдВрдзрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдорд╛рди
*Text
рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╕рдмрдорд┐рдЯ рдмрдЯрди рдХреЛ "
*Text
рд╕рд╛рде" project.l "рджрдмрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ред
рд░реВрдкреЛрдВ рдХреЗ рдЗрд╕ рд╕рд░рд▓ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:
- рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреГрд╖реНрда рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- рд╡реЗ рдЖрд╡реЗрджрди рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ POST рдЕрдиреБрд░реЛрдз рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдиреНрдо рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ рдЙрдирдХреЗ рдирдП рдореВрд▓реНрдпреЛрдВ рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, HTML рдкреГрд╖реНрда рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдЖрд╡реЗрджрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
<hidden>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред - рд╡реЗ рдмрд╣реБрдд рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ "рд╕рдмрдорд┐рдЯ" рдмрдЯрди рд╣реЛрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рднрд░рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди) рдХреЗрд╡рд▓ "рд╕рдмрдорд┐рдЯ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рднрд╛рд╡реА рд╣реЛрдВрдЧреЗред
рд╣рд╛рд▓рд╛рдБрдХрд┐ рд╣рдордиреЗ рдЗрд╕ рд╢реИрд▓реА рдореЗрдВ рдХрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦреЗ рд╣реИрдВ, рд╣рдо тАЬ@ lib / form.lтАЭ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП GUI рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ, рдмрдЯрди рдПрдХреНрд╢рди рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░ рдХреЛ рдЕрдореВрд░реНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GUI рдШрдЯрдХреЛрдВ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
рдЕрдзрд┐рд╡реЗрд╢рди
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рддреНрд░ (рдкреНрд░рддреНрдпреЗрдХ рдЬреБрдбрд╝реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП) рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╕реНрдерд╛рдпреА рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рд░реНрд╡рд░ рдХреА рдПрдХ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ
рдКрдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдерд╛, рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ HTML рдкреЗрдЬ рднреЗрдЬрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж
рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЖрд░рдВрднреАрдХрд░рдг рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ рди рдХрд╣реАрдВ
app
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
######################################################################## (app) # Start a session (html 0 "Simple Session" "@lib.css" NIL (<post> NIL "project.l" (<field> 10 '*Text) (<submit> "Save") ) ) ########################################################################
рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдЕрдзрд┐рдХ рдЕрдВрддрд░ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдЖрдк рдЕрдкрдирд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдЪрд▓ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдХреЙрд▓рди рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ - PicoLisp рдХрдорд╛рдВрдб рд▓рд╛рдЗрди
$ pil @lib/http.l @lib/xhtml.l @lib/form.l --server 8080 project.l + :
рдпреВрдирд┐рдХреНрд╕
ps
рдпреВрдЯрд┐рд▓рд┐рдЯреА рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдмрддрд╛рдПрдВрдЧреЗ рдХрд┐ рджреЛ
picolisp
рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЕрдм рдЪрд▓ рд░рд╣реА рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рджреВрд╕рд░рд╛ рдХрд╛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдХреБрдЫ рдкрд╛рда рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкрд╛рда рдмреЙрдХреНрд╕ рдореЗрдВ "abcdef" рдХрд╣реЗрдВ, рдФрд░ рд╕рд╣реЗрдЬреЗрдВ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░
*Text
рдЪрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ
: *Text -> "abcdef"
рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд░реНрдкрд┐рдд PicoLisp рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ "рдХрдиреЗрдХреНрдЯреЗрдб" рд╣реИред
рдЦрд╛рд▓реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░
Ctrl-D
рджрдмрд╛рдХрд░ рдЖрдк рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ (рдХрд┐рд╕реА рднреА PicoLisp рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ рдХреА рддрд░рд╣) рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рдпрд╣ рд╕реНрд╡рдпрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдЧрд╛ рдпрджрд┐ рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрд╡рдзрд┐ рдХреЗ рднреАрддрд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 5 рдорд┐рдирдЯ) рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рдЙрддреНрдкрд╛рджрди рд╕рдВрд╕реНрдХрд░рдг (рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛) рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдЖрдорддреМрд░ рдкрд░ "+" рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдФрд░
-wait
рдмрд┐рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ
$ pil @lib/http.l @lib/xhtml.l @lib/form.l --server 8080 project.l -wait
рдЗрд╕ рд░рди рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкреНрд░реЙрдореНрдкреНрдЯ (:) рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдлреЙрд░реНрдо (рдХрд╛рд░реНрд░рд╡рд╛рдИ рд░реВрдкреЛрдВ)
рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рддреНрд░ рд╣реИ, рд╣рдо рд╕рдХреНрд░рд┐рдп GUI рдврд╛рдВрдЪреЗ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
html
рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЛ
action
рдореЗрдВ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВред
рд╢рд░реАрд░ рдХреЗ рдЕрдВрджрд░, html
рдЕрдиреНрдп рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреИрдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдХреЙрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВform
######################################################################## (app) # Start session (action # Action handler (html 0 "Form" "@lib.css" NIL # HTTP/HTML protocol (form NIL # Form (gui 'a '(+TextField) 10) # Text Field (gui '(+Button) "Print" # Button '(msg (val> (: home a))) ) ) ) ) ########################################################################
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЕрдм рдХреЛрдИ рд╡реИрд╢реНрд╡рд┐рдХ рд╡реИрд░рд┐рдПрдмрд▓ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕реЗ *Text
, рдХрд┐рд╕реА рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдордиреЗ ` a
` рдШрдЯрдХ рдХреЛ рдПрдХ рд╕реНрдерд╛рдиреАрдп, рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдирд╛рдо рджрд┐рдпрд╛+TextField
(gui 'a '(+TextField) 10) # Text Field
рдЕрдиреНрдп рдШрдЯрдХ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред '(msg (val> (: home a)))
(: home)
рд╣рдореЗрд╢рд╛ рдЙрд╕ GUI рдШрдЯрдХ рд╡рд╛рд▓реЗ рдлрд╝реЙрд░реНрдо рдХрд╛ рд▓рд┐рдВрдХ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рддреЛ (: home a)
- a
рд╡рд░реНрддрдорд╛рди рд░реВрдк рдореЗрдВ рдШрдЯрдХ ' ' рдХрд╛ рд▓рд┐рдВрдХ ред рдЪреВрдВрдХрд┐ рд╕рдВрджреЗрд╢ STDERR рдореЗрдВ рдЕрдкрдирд╛ рддрд░реНрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдзрд┐ val>
рдШрдЯрдХ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд┐рдХрд╛рд▓рддреА рд╣реИ, рдЬрдм рд╣рдо рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдкрд╛рда рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рджреЗрдЦреЗрдВрдЧреЗредрдЕрд▓рдЧ рд╕реЗ action
рдФрд░ form
рдЬреНрдпрд╛рджрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдВрджрд░ html
рдФрд░ form
, рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ HTML рдлрд╝рдВрдХреНрд╢рди (рдФрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд▓рд┐рд╕реНрдк рдлрд╝рдВрдХреНрд╢рди) рдХреЛ рдорд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВредрдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреГрд╖реНрда рдореЗрдВ рдпрд╣ рд╕рдВрд░рдЪрдирд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ: (action # Action handler (html .. # HTTP/HTML protocol (<h1> ..) # HTML tags (form NIL # Form (<h3> ..) (gui ..) # GUI component(s) (gui ..) .. ) (<h2> ..) (form NIL # Another form (<h3> ..) (gui ..) # GUI component(s) .. ) (<br> ..) .. ) )
рд╕рдорд╛рд░реЛрд╣ gui
рд╢рд░реАрд░ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдп form
рдлрд╝рдВрдХреНрд╢рди рд╣реИ gui
ред рдпрд╣ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рд╣реИредрдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд╣рд░ form
gui
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЙрдкрдирд╛рдо рд╣реИ, рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА, рдФрд░ рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдбрд┐рдЬрд╛рдЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХред рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦрд╛ (gui 'a '(+TextField) 10) # Text Field
рдпрд╣рд╛рдБ ' a
' рдкреНрд░рдХрд╛рд░ рдХреЗ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рд╣реИ (+TextField)
ред рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрд░реНрдХ 10
рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдЪреМрдбрд╝рд╛рдИ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рддрд╛ рд╣реИред рдЬреАрдпреВрдЖрдИ рдХреНрд▓рд╛рд╕реЗрд╕ рдЪреИрдкреНрдЯрд░ рдореЗрдВ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ редGET рдЕрдиреБрд░реЛрдз gui
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдорд╛ рд╣реИ new
ред рдпрд╣ рдШрдЯрдХ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╡рд░реНрддрдорд╛рди рд░реВрдк рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдШрдЯрдХ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдХрд░ рдЗрд╕реЗ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ init>
ред рдЕрдВрдд рдореЗрдВ, рд╡рд╣ show>
HTML рдХреЛрдб рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИредPOST рдЕрдиреБрд░реЛрдз рдХреЗ рджреМрд░рд╛рди, рдпрд╣ gui
рдХрд┐рд╕реА рднреА рдирдП рдШрдЯрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореМрдЬреВрджрд╛ рдШрдЯрдХреЛрдВ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, gui
рд╕рдВрджреЗрд╢ рдШрдЯрдХ рднреЗрдЬрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ show>
редрдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣
HTTP рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ: GET рдФрд░ POSTред рд╣рдо рдЗрди рджреЛрдиреЛрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:- GET рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдирдпрд╛ рдкреЗрдЬ рдмрдирд╛рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдкреГрд╖реНрда рдкрд╣рд▓реА рдмрд╛рд░ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЖрдорддреМрд░ рдкрд░ URL рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдкрддрд╛ рдлрд╝реАрд▓реНрдб рдореЗрдВ рджрд░реНрдЬ рдХрд░рдХреЗ, рдпрд╛ рдПрдХ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ (рдЬреЛ рдЕрдХреНрд╕рд░ рдПрдХ рд╕рдмрдореЗрдиреВ рдпрд╛ рдЯреИрдм рдХрд╛ рдПрдХ рддрддреНрд╡ рд╣реЛрддрд╛ рд╣реИ )ред
- POST рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╣ рдлреЙрд░реНрдо рдкрд░ рдПрдХ рдмрдЯрди рджрдмрд╛рдХрд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрдмрдВрдзрд┐рдд рдлреЙрд░реНрдо рдХреЗ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдмрдЯрди рд╕реЗ рдЬреБрдбрд╝реЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдмрдЯрди рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рдХреЛрдб рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИ: рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝реЗрдВ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░реЗрдВ, рд╕рдВрджреЗрд╢ рдФрд░ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдПрдХ POST рдЕрдиреБрд░реЛрдз рдирдХрд▓реА рдХрд░реЗрдВ, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рдПрдЧрд╛ (рджреЗрдЦреЗрдВ URL рдмрджрд▓реЗрдВ) рдкрддреЗ )редGET рд╕рд░реНрд╡рд░ рдкрд░ рд╕рднреА GUI рдШрдЯрдХ рдмрдирд╛рддрд╛ рд╣реИред рдпреЗ рдШрдЯрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ HTML рдкреЗрдЬ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рднреА рдХреЛрдИ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдкреГрд╖реНрда рдХреЛ POST рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░ - рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ - рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдлрдВрдХреНрд╢рди рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ action
ред рдпрд╣ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреА рддреНрд░реБрдЯрд┐ рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдПрдХ HTML рдкреГрд╖реНрда рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рд╛рд░реВрдк (рдкрд╛рда, рд╕рдВрдЦреНрдпрд╛, рджрд┐рдирд╛рдВрдХ, рд╡рд╕реНрддреБ, рдЖрджрд┐) рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИредрд░реВрдк рдХреА рд╕реНрдерд┐рддрд┐ рд╕рдордп рдХреЗ рд╕рд╛рде рдмрдиреА рд░рд╣рддреА рд╣реИред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдкрд┐рдЫрд▓реЗ рдмрдЯрди рдХреЗ рд╕рд╛рде рдкрд┐рдЫрд▓реЗ рдкреГрд╖реНрда рдкрд░ рд▓реМрдЯрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрдерд┐рддрд┐ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ (POST рдЕрдиреБрд░реЛрдз рджреНрд╡рд╛рд░рд╛) рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреЛ рдкрд╛рда рдлрд╝реАрд▓реНрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк "рд╕реНрд░реЛрдд" рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХреБрдЫ рдкрд╛рда рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрдЯрди рдХреЗ рдХрд┐рд╕реА рдПрдХ рдХреНрд▓рд┐рдХ рдкрд░ "рдЧрдВрддрд╡реНрдп" рдлрд╝реАрд▓реНрдб рдореЗрдВ рдКрдкрд░реА рдпрд╛ рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕реЗ рдХреЙрдкреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ######################################################################## (app) (action (html 0 "Case Conversion" "@lib.css" NIL (form NIL (<grid> 2 "Source" (gui 'src '(+TextField) 30) "Destination" (gui 'dst '(+Lock +TextField) 30) ) (gui '(+JS +Button) "Upper Case" '(set> (: home dst) (uppc (val> (: home src))) ) ) (gui '(+JS +Button) "Lower Case" '(set> (: home dst) (lowc (val> (: home src))) ) ) ) ) ) ########################################################################
+Lock
"рдЧрдВрддрд╡реНрдп" рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧ рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХреЛ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХреБрдЫ рдкрд╛рда рдбрд╛рд▓рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдмрдЯрди рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИредURL рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ
рдЪреВрдВрдХрд┐ рдПрдХреНрд╢рди рдХреЛрдб (рдмрдЯрди) рдХреЛ html
HTTP рд╣реЗрдбрд░ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рдпрд╣ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреБрдЫ рдФрд░ рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрд▓рдЧ HTML рдкреЗрдЬ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд▓рд┐рдВрдХ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдХреЛрдб рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдбреЗрдЯрд╛ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИредрдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдПрдХ рдкрд╛рда рдмреЙрдХреНрд╕ рдФрд░ рджреЛ рдмрдЯрди рджрд┐рдЦрд╛рддрд╛ рд╣реИред рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рджрд░реНрдЬ рдХрд┐рд╕реА рднреА рдкрд╛рда рдХреЛ рдкрд╣рд▓реЗ рдмрдЯрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рдпрд╛ рджреВрд╕рд░реЗ рдмрдЯрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ######################################################################## (load "@lib/ps.l") (app) (action (html 0 "Export" "@lib.css" NIL (form NIL (gui '(+TextField) 30 8) (gui '(+Button) "Text" '(let Txt (tmp "export.txt") (out Txt (prinl (val> (: home gui 1)))) (url Txt) ) ) (gui '(+Button) "PDF" '(psOut NIL "foo" (a4) (indent 40 40) (down 60) (hline 3) (font (14 . "Times-Roman") (ps (val> (: home gui 1))) ) (hline 3) (page) ) ) ) ) ) ########################################################################
(рдЬрдм рдЖрдк рдХрдХреНрд╖рд╛ +TextField
(рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдБрдЪрд╛рдИ) рдХреЗ рд▓рд┐рдП рджреЛ рддрд░реНрдХ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдПрдХ рддрддреНрд╡ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ textarea
)рдкрд╣рд▓реЗ рдмрдЯрди рдХрд╛ рдПрдХреНрд╢рди рдХреЛрдб рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ (рдпрд╛рдиреА, рдореМрдЬреВрджрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрд╕реНрдерд╛рдпреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ "Export.txt" рдирд╛рдордХ рдПрдХ рдлрд╝рд╛рдЗрд▓), рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдХреЗ рдорд╛рди рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕ рд╕рдордп) рд╣рдо рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рдирд╛рдо рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдЗрд╕реЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВ) рдФрд░ рдлрд┐рд░ url
рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИредрджреВрд╕рд░рд╛ рдмрдЯрди @ foo.pdf рдирд╛рдордХ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП @ lib / ps.l рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди url
рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдЕрдВрджрд░ рдЫрд┐рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ psOut
ред рдирддреАрдЬрддрди, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИредрдЕрд▓рд░реНрдЯ рдФрд░ рд╕рдВрд╡рд╛рдж
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрд▓рд░реНрдЯ рдФрд░ рд╕рдВрд╡рд╛рдж рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реИрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рд╣рдо рджреЗрдЦрддреЗ рдереЗ;;рд╡реЗ рдкреЙрдкрдЕрдк рдирд╣реАрдВ рд╣реИрдВред рдЗрд╕ рдврд╛рдВрдЪреЗ рдореЗрдВ, рд╡реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрд╕рд╛рди рдЙрдкрдпреЛрдЧ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдмрдЯрди рдХреЛрдб рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рд╣рдореЗрд╢рд╛ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛редрдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдЬреЛ рджреЛ рдЕрд▓рд░реНрдЯ рдФрд░ рдПрдХ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдпрд╣ рдПрдХ рд▓реЙрдХ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдФрд░ рджреЛ рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рд░реВрдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ ######################################################################## (app) (action (html 0 "Alerts and Dialogs" "@lib.css" NIL (form NIL (gui '(+Init +Lock +TextField) "Initial Text" 20 "My Text") (gui '(+Button) "Alert" '(alert NIL "This is an alert " (okButton)) ) (gui '(+Button) "Dialog" '(dialog NIL (<br> "This is a dialog.") (<br> "You can change the text here " (gui '(+Init +TextField) (val> (: top 1 gui 1)) 20) ) (<br> "and then re-submit it to the form.") (gui '(+Button) "Re-Submit" '(alert NIL "Are you sure? " (yesButton '(set> (: home top 2 gui 1) (val> (: home top 1 gui 1)) ) ) (noButton) ) ) (cancelButton) ) ) ) ) ) ########################################################################
рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧ +Init
рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд╛рда" рдХреЗ рд╕рд╛рде "рдореЗрд░рд╛ рдкрд╛рда" рдлрд╝реАрд▓реНрдб рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдлрд╝реАрд▓реНрдб рд▓реЙрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╛рди рд╕реАрдзреЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдкрд╣рд▓рд╛ рдмрдЯрди рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛: "рдпрд╣ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╣реИ"ред рдЖрдк рдЗрд╕реЗ "рдУрдХреЗ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрджреВрд╕рд░рд╛ рдмрдЯрди рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╡рд╛рдж рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореБрдЦреНрдп рдлреЙрд░реНрдо рдХреЗ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рд╕реЗ рдорд╛рди рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реЛрддреА рд╣реИред рдпрджрд┐ рдЖрдк "рдкреБрдирдГ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд▓рд┐рдП "рд╣рд╛рдБ" рдХрд╛ рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдорд╛рди рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ?рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдЙрджрд╛рд╣рд░рдг
рдЕрдм рд╣рдорд╛рд░реА рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓ "рдкреНрд░реЛрдЬреЗрдХреНрдЯ.рдПрд▓" рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд░рдЦреЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрд░реНрдпрд╛рдкреНрдд рдФрд░ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдЙрджрд╛рд╣рд░рдг рдкрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред рд╣рдордиреЗ рдЬреЛ рд╕реАрдЦрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдХ рд╕рд░рд▓ рдмрд┐рдЧреНрдирдо рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред ("рдмрд┐рдЧреНрдирдо" рдХреНрдпреЛрдВрдХрд┐ PicoLisp рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ - bignums (рдЕрд╕реАрдорд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ))рдпрд╣ рдПрдХ рдлреЙрд░реНрдо, рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдФрд░ рдХрдИ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб PicoLisp рд╡рд┐рддрд░рдг рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "/usr/share/picolisp/misc/calc.l") рд╕реАрдзреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╡рд░рдг "misc / calcc" рдХреЗ рд╕рд╛рдередcalc.l # 14may11abu # (c) Software Lab. Alexander Burger # *Init *Accu *Stack (allowed NIL "!calculator" "@lib.css") (load "@lib/http.l" "@lib/xhtml.l" "@lib/form.l") # Calculator logic (de digit (N) (when *Init (zero *Accu) (off *Init)) (setq *Accu (+ N (* 10 *Accu))) ) (de calc () (let (Fun (caar *Stack) Val (cddr (pop '*Stack))) (setq *Accu (if (and (== '/ Fun) (=0 *Accu)) (alert "Div / 0") (Fun Val *Accu) ) ) ) ) (de operand (Fun Prio) (when (>= (cadar *Stack) Prio) (calc)) (push '*Stack (cons Fun Prio *Accu)) (on *Init) ) (de finish () (while *Stack (calc)) (on *Init) ) # Calculator GUI (de calculator () (app) (action (html 0 "Bignum Calculator" "@lib.css" NIL (<h2> NIL "Bignum Calculator") (form NIL (<br> (gui '(+Var +NumField) '*Accu 60)) (<grid> 4 (gui '(+JS +Button) "┬▒" '(setq *Accu (- *Accu))) (gui '(+Able +JS +Button) '(ge0 *Accu) (char 8730) '(setq *Accu (sqrt *Accu)) ) (gui '(+JS +Button) "\^" '(operand '** 3)) (gui '(+JS +Button) "/" '(operand '/ 2)) (gui '(+JS +Button) "7" '(digit 7)) (gui '(+JS +Button) "8" '(digit 8)) (gui '(+JS +Button) "9" '(digit 9)) (gui '(+JS +Button) "*" '(operand '* 2)) (gui '(+JS +Button) "4" '(digit 4)) (gui '(+JS +Button) "5" '(digit 5)) (gui '(+JS +Button) "6" '(digit 6)) (gui '(+JS +Button) "-" '(operand '- 1)) (gui '(+JS +Button) "1" '(digit 1)) (gui '(+JS +Button) "2" '(digit 2)) (gui '(+JS +Button) "3" '(digit 3)) (gui '(+JS +Button) "+" '(operand '+ 1)) (gui '(+JS +Button) "0" '(digit 0)) (gui '(+JS +Button) "C" '(zero *Accu)) (gui '(+JS +Button) "A" '(main)) (gui '(+JS +Button) "=" '(finish)) ) ) ) ) ) # Initialize (de main () (on *Init) (zero *Accu) (off *Stack) ) # Start server (de go () (server 8080 "!calculator") )
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, PicoLisp рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдПрдВ $ misc/calc
рдпрд╛ рдЗрд╕реЗ рдПрдХ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рдХреЗ рд╕рд╛рде рдХрд╣рддреЗ рд╣реИрдВ $ /usr/share/picolisp/misc/calc
рдпрджрд┐ рдЖрдк рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ PicoLisp рд╕рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╢реБрд░реВ рдХрд░реЗрдВ $ pil misc/calc.l -main -go +
рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЦреЛрд▓реЗрдВ, рдкреГрд╖реНрда ' http: // localhost: 8080 'редрдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд▓реЙрдЬрд┐рдХ рдФрд░ GUI рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ calculator
ред рдЗрд╕реЗ рд╕реАрдзреЗ ( URL рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рд╡рд░реНрдгрд┐рдд ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ , рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд░реНрд╡рд░ URL рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рджреВрд╕рд░рд╛, POST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИредрдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЙрддреНрдкрд╛рджрди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо "misc / calc.l" рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЕрдиреБрдордд рд╡рд┐рд╡рд░рдг рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ ) (allowed NIL "!calculator" "@lib.css")
рдпрд╣ рдПрдХ рдПрдХрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рдкрд╣реБрдВрдЪ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░реЗрдЧрд╛ calculator
редрдХреИрд▓рдХреНрдпреВрд▓реЗрдЯрд░ рддреАрди рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ *Init
, *Accu
рдФрд░ *Stack
ред *Init
- рдСрдкрд░реЗрдЯрд░ рдмрдЯрди рджреНрд╡рд╛рд░рд╛ рдмреВрд▓рд┐рдпрди рдзреНрд╡рдЬ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЕрдЧрд▓рд╛ рдЕрдВрдХ рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдмреИрдЯрд░реА рдХреЛ рд╢реВрдиреНрдп рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдЧрд╛ред *Accu
- рдмреИрдЯрд░реА (рд╕рдВрдЪрдп рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдпреЛрдЬрдХ)ред рдЗрд╕рдХрд╛ рдорд╛рди рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧрдгрдирд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред *Stack
рдпрд╣ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рд▓рдВрдмрд┐рдд рдЧрдгрдирд╛рдУрдВ (рдСрдкрд░реЗрдЯрд░реЛрдВ, рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдкрд░рд┐рдгрд╛рдореЛрдВ) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреЛрд░ рд╕реНрдЯреИрдХ рд╣реИ, рдЬрдмрдХрд┐ рдЙрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╡рд╛рд▓реЗ рдЧрдгрдирд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВредрдлрд╝рдВрдХреНрд╢рди digit
рдХреЛ рдирдВрдмрд░ рдмрдЯрди рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмреИрдЯрд░реА рдореЗрдВ рдПрдХ рдФрд░ рдЕрдВрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИредрдлрд╝рдВрдХреНрд╢рди calc
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЧрдгрдирд╛ рдХрджрдо рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рд╕реНрдЯреИрдХ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд╢реВрдиреНрдп рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИредoperand
рдСрдкрд░реЗрд╢рдВрд╕ рдХреЗ рдмрдЯрди, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдФрд░ рддрд░реНрдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ред рдпрд╣ рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдпрд╣ рдХрдо рд╣реИ, рддреЛ рдЧрдгрдирд╛ рдХреА рдЕрд╡рд╣реЗрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИредfinish
рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдлрд╝рдВрдХреНрд╢рди рдореЗрдВ calculator
рдПрдХ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рд╣реИ, 60 рд╡рд░реНрдг рдЪреМрдбрд╝рд╛ (gui '(+Var +NumField) '*Accu 60)
рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧ +Var
рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИ *Accu
ред рдЗрд╕ рдЪрд░ рдореЗрдВ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдФрд░ рдЗрд╕ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редрд╡рд░реНрдЧрдореВрд▓ рдмрдЯрди рдореЗрдВ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИ +Able
(gui '(+Able +JS +Button) '(ge0 *Accu) (char 8730) '(setq *Accu (sqrt *Accu)) )
рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдмреИрдЯрд░реА рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдмрдЯрди рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИредрдлреЙрд░реНрдо рдХрд╛ рдмрд╛рдХреА рдмрдЯрди рдХрд╛ рдПрдХ рд╕рд░рдгреА (рдЬреАрдЖрд░рдЖрдИрдбреА) рд╣реИ рдЬреЛ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдирдВрдмрд░ рджрд░реНрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдСрдкрд░реЗрдЯрд░ рдмрдЯрди рд╕реЗ рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдорд░реНрдерд┐рдд рдСрдкрд░реЗрд╢рди рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдШрдЯрд╛рд╡, рдЧреБрдгрд╛, рднрд╛рдЧ, рд╕рд╛рдЗрди рд░рд┐рд╡рд░реНрд╕рд▓, рд╡рд░реНрдЧрдореВрд▓ рдФрд░ рдПрдХреНрд╕рдкреЗрдХреНрдЯреЛрд░рд┐рдПрд╢рди (рд╕рднреА рдСрдкрд░реЗрд╢рди рд▓рдВрдмреЗ рдкреВрд░реНрдгрд╛рдВрдХ рдЕрдВрдХрдЧрдгрд┐рдд рдореЗрдВ рд╣реИрдВ)ред рдмрдЯрди ` C
` рдХреЗрд╡рд▓ рдмреИрдЯрд░реА рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдмрдЯрди ' A
' рд╕рднреА рд▓рдВрдмрд┐рдд рдЧрдгрдирд╛рдУрдВ рдХреЛ рднреА рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИредрдФрд░ рдХреЛрдб рдХреА 53 рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдпрд╣ рд╕рдм!
рдЯреЗрдмрд▓ (рдЪрд╛рд░реНрдЯ)
рдЪрд╛рд░реНрдЯ - рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рдХреА рдЖрдВрддрд░рд┐рдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд╕реА рдШрдЯрдХредрдЖрдорддреМрд░ рдкрд░, рдпрд╣ рдбреЗрдЯрд╛ рдиреЗрд╕реНрдЯреЗрдб рд╕реВрдЪрд┐рдпреЛрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрдпрдиреЛрдВ рдпрд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рддрд╛рд▓рд┐рдХрд╛ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдЪрд╛рд░реНрдЯ рдЖрдкрдХреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ рд╕реНрддрдВрднреЛрдВ (рдЖрдорддреМрд░ рдкрд░ HTML рддрд╛рд▓рд┐рдХрд╛рдУрдВ ) рдореЗрдВ рдбреЗрдЯрд╛ рджреЗрдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ , рдЙрдиреНрд╣реЗрдВ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рджреГрд╢реНрдп GUID рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВредрд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЪрд╛рд░реНрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рддрд░реНрдХ рд╕рднреА рдЖрдВрддрд░рд┐рдХ рддрдВрддреНрд░ рдкрд░ рдПрдХ рдорд╣рд╛рди рдкреНрд░рднрд╛рд╡ рдХреЗ рд╕рд╛рде рдкреВрд░реЗ рдврд╛рдВрдЪреЗ рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ GUI рдШрдЯрдХ рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдкрдбреЗрдЯ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рджреМрд░рд╛рди рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реНрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИредрдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдо рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рдиреНрдпреВрдореЗрд░рд┐рдХ рдбреЗрдЯрд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ ######################################################################## (app) (action (html 0 "Table" "@lib.css" NIL (form NIL (<table> NIL NIL '((NIL "Text") (NIL "Number")) (do 4 (<row> NIL (gui '(+TextField) 20) (gui '(+NumField) 10) ) ) ) (<submit> "Save") ) ) ) ########################################################################
рджреЛ рдХреЙрд▓рдо "рдЯреЗрдХреНрд╕реНрдЯ" рдФрд░ "рд╕рдВрдЦреНрдпрд╛" рдФрд░ рдЪрд╛рд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ +TextField
рдФрд░ +NumField
редрдЖрдк рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдирдВрдмрд░ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реЗрд╡ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рдШрдЯрдХреЛрдВ рдкрд░ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛ рдпрджрд┐ рджреВрд╕рд░рд╛ рдХреЙрд▓рдо рдореЗрдВ рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ рд╣реИ рддреЛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ)редрдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:- рдпрджреНрдпрдкрд┐ рдЖрдк рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
: (val> (get *Top 'gui 2)) # Value in the first row, second column -> 123
рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдПрдХрд▓ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕реАрдзрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рд╕рднреА рдЬреАрдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреА рдЪрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдФрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред
рдЪрд╛рд░реНрдЯ рдЗрди рдЪреАрдЬреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ: ######################################################################## (app) (action (html 0 "Chart" "@lib.css" NIL (form NIL (gui '(+Chart) 2) # Inserted a +Chart (<table> NIL NIL '((NIL "Text") (NIL "Number")) (do 4 (<row> NIL (gui 1 '(+TextField) 20) # Inserted '1' (gui 2 '(+NumField) 10) ) ) ) # Inserted '2' (<submit> "Save") ) ) ) ########################################################################
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ +Chart
GUI рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдШрдЯрдХ рдбрд╛рд▓рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рддрд░реНрдХ "2" рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЪрд╛рд░реНрдЯ рдХреЛ рдбреЗрдЯрд╛ рдХреЗ рджреЛ рд╕реНрддрдВрднреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПредрдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдиреЗ рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рдирдВрдмрд░ (рдпрд╣рд╛рдВ "1" рдФрд░ "2") рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ gui
, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдШрдЯрдХ рдЪрд╛рд░реНрдЯ рдХреЗ рдЕрдВрджрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПредрдЕрдм - рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдореЗрдВ "a", "b" рдФрд░ "c" рджрд░реНрдЬ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдХреЙрд▓рдо рдореЗрдВ 1, 2 рдФрд░ 3 - рд╣рдо рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрдХрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкреВрд░реА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВval>
: (val> (get *Top 'chart 1)) # Retrieve the value of the first chart -> (("a" 1) ("b" 2) ("c" 3))
рд╡реИрд╕реЗ, рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рд░реНрдп рд╣реИ chart
: (val> (chart)) # Retrieve the value of the current chart -> (("a" 1) ("b" 2) ("c" 3))
chart
рдЙрдкрд░реЛрдХреНрдд рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрдЬрд╛рдп рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рд╣рдо "рд╡рд░реНрддрдорд╛рди" рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛редрд╕реНрдХреНрд░реЙрд▓
рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рдмрдЯрди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╣рдо рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ +UpButton
рдФрд░+DnButton
######################################################################## (app) (action (html 0 "Scrollable Chart" "@lib.css" NIL (form NIL (gui '(+Chart) 2) (<table> NIL NIL '((NIL "Text") (NIL "Number")) (do 4 (<row> NIL (gui 1 '(+TextField) 20) (gui 2 '(+NumField) 10) ) ) ) (gui '(+UpButton) 1) # Inserted two buttons (gui '(+DnButton) 1) (----) (<submit> "Save") ) ) ) ########################################################################
рдПрдХ рдХреНрд▓рд┐рдХ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рддрд░реНрдХ "1")редрдЕрдм рдЖрдк рдбреЗрдЯрд╛ рдХреА рдХрдИ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реНрдХреНрд░реЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред "рд╕рд╣реЗрдЬреЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ (рд╕реНрдХреНрд░реЙрд▓ рдмрдЯрди рдХреЗ рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдХреЛ рдЫреЛрдбрд╝рдХрд░), рдХреНрдпреЛрдВрдХрд┐ рдлрд╝реЙрд░реНрдо рдореЗрдВ рдХреЛрдИ рднреА рдмрдЯрди рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХреЛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд░реНрд╡рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рднреЗрдЬрддрд╛ рд╣реИредрдХрд╛рд░реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдХрд╛рд░реНрдп рдХрд░реЗрдВ
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдХрд╣рд╛, рдЪрд╛рд░реНрдЯ рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрднрд╛рд╕реА рдШрдЯрдХ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЪрд╛рд░реНрдЯ рдХрд╛ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рд╕реВрдЪрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рд╕рдмрд▓рд┐рд╕реНрдЯ рдПрдХ рдбреЗрдЯрд╛ рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рддрддреНрд╡ рдПрдХ GUID рдШрдЯрдХ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИредрдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬреИрд╕реЗ рдХрд┐ ("a" 1)
рддреБрд▓рдирд╛ (gui 1 '(+TextField) 20) (gui 2 '(+NumField) 10)
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдХреНрд╕рд░ рдРрд╕рд╛ рдПрдХ-рд╕реЗ-рдПрдХ рд╕рдВрдмрдВрдз рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд░реВрдкреЛрдВ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИредрдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд╛рд░реНрдЯ "рдХреЙрд▓рдо рдХреА рд╕рдВрдЦреНрдпрд╛" рддрд░реНрдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛ - рджреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрд╛рддреНрдордХ рддрд░реНрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдлрд╝рдВрдХреНрд╢рди рдЬреАрдпреВрдЖрдИ рдШрдЯрдХреЛрдВ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдЬреАрдпреВрдЖрдИ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдПредрдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╣реИред рдЬрдмрдХрд┐ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЧреНрд░рд╛рд╣рдХ рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рдЖрдпрд╛рдореА рд╕реВрдЪреА рд╣реИ, "рдкреБрдЯ" рдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдХреЛ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ: рдЕрдВрддрд┐рдо рдирд╛рдо, рдкрд╣рд▓рд╛ рдирд╛рдо, рдлреЛрди рдирдВрдмрд░, рдкрддрд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдирд╛рдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ "рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ" рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдмрджрд▓реЗ рдореЗрдВ, рдЗрд╕реЗ рдЬреАрдпреВрдЖрдИ рдореЗрдВ рддреИрдирд╛рдд рдХрд░реЗрдЧрд╛редрдЕрдм, рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ: рдЪрд╛рд░реНрдЯ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬреАрдпреВрдЖрдИ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрдЦреНрдпрд╛ (рдЬрд░реНрдорди рдореЗрдВ) рдХрд╛ рдкрд╛рда рд░реВрдк рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред ######################################################################## (app) (load "@lib/zahlwort.l") (action (html 0 "Numerals" "@lib.css" NIL (form NIL (gui '(+Init +Chart) (1 5 7) 2 '((N) (list N (zahlwort N))) car ) (<table> NIL NIL '((NIL "Numeral") (NIL "German")) (do 4 (<row> NIL (gui 1 '(+NumField) 9) (gui 2 '(+Lock +TextField) 90) ) ) ) (gui '(+UpButton) 1) (gui '(+DnButton) 1) (----) (<submit> "Save") ) ) ) ########################################################################
"@ Lib / zahlwort.l" рдПрдХ рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ zahlwort
, рдЬреЛ рдмрд╛рдж рдореЗрдВ 'рдкреБрдЯ' рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрд╛рдо рдЖрдПрдЧрд╛ред zahlwort
рдПрдХ рдирдВрдмрд░ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЬрд░реНрдорди рдореЗрдВ рдЕрдкрдирд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИредрдЕрдм рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдВ (gui '(+Init +Chart) (1 5 7) 2 '((N) (list N (zahlwort N))) car )
рд╣рдо рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧ +Init
рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ +Chart
рдФрд░ рдЗрд╕реЗ (1 5 7)
рдЪрд╛рд░реНрдЯ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪреА рджреЗрддреЗ рд╣реИрдВ ред рдлрд┐рд░, '2' рдХреЗ рдмрд╛рдж (рдЪрд╛рд░реНрдЯ рдореЗрдВ рджреЛ рдХреЙрд▓рдо рд╣реИрдВ), рд╣рдо рдкреБрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ: '((N) (list N (zahlwort N)))
рдЬреЛ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдЙрд╕рдХреЗ рдирд╛рдо рдХреА рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ car )
рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдРрд╕реА рд╕реВрдЪреА рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдВрдмрд░ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╕реВрдЪреА рдХрд╛ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╣реЛрдЧрд╛редрдЖрдк рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ "get" "put" рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд▓реЛрдо рд╣реИред "рдЪрд╛рд░реНрдЯ" рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЗрд╕рдореЗрдВ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ (рдпрд╛ рдХреЗрд╡рд▓ рдмрдВрдж рд╣реИ)редрджреВрд╕рд░реЗ рдХреЙрд▓рдо рдореЗрдВ рдлреАрд▓реНрдб (gui 2 '(+Lock +TextField) 90) ) ) )
рдЕрд╡рд░реБрджреНрдз рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреБрдЯ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдкрд╛рда рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИредрдЬрдм рдЖрдк рдЗрд╕ рдлрд╝реЙрд░реНрдо рдХреЛ рдХрд┐рд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ (1 5 7)
рдХрдХреНрд╖рд╛ рдХреЗ рддрд░реНрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, "1 / eins", "5 / f├╝nf" рдФрд░ "7 / sieben" рдХреЗ рд╕рд╛рде рддреАрди рдкреВрд░реНрд╡-рднрд░реА рд╣реБрдИ рд▓рд╛рдЗрдиреЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА +Init
ред рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдореЗрдВ рдПрдХ рдирдВрдмрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдФрд░ ENTER рдХреБрдВрдЬреА рдпрд╛ рдХрд┐рд╕реА рдПрдХ рдмрдЯрди рдХреЛ рджрдмрд╛рдХрд░, рдЖрдкрдХреЛ рджреВрд╕рд░реЗ рдХреЙрд▓рдо рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдЯреЗрдХреНрд╕реНрдЯ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рдЬреАрдпреВрдЖрдИ рдХрдХреНрд╖рд╛рдПрдВ
рдкрд┐рдЫрд▓реЗ рдЕрдзреНрдпрд╛рдпреЛрдВ рдореЗрдВ, рд╣рдордиреЗ GUI рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗ, рдЬреИрд╕реЗ рдХрд┐ +TextField
, +NumField
рдпрд╛ +Button
, рдЕрдХреНрд╕рд░ рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ +Lock
, +Init
рдпрд╛ +Able
ред рдЕрдм рд╣рдо рд╕рдВрдкреВрд░реНрдг рдкрджрд╛рдиреБрдХреНрд░рдо рдкрд░ рдПрдХ рд╡реНрдпрд╛рдкрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВредрдПрдХ рд╕рд╛рд░ рд╡рд░реНрдЧ +gui
рд╕рднреА GUI рд╡рд░реНрдЧреЛрдВ рдХреА рдиреАрдВрд╡ рд╣реИред рд╡рд░реНрдЧ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд╛рд░реНрдпреЛрдВ рд▓рд╛рдЗрд╡ рд░рд╡рд╛рдирдЧреА ( ┬лрдирд┐рд░реНрднрд░рддрд╛"):рдЧреБрдИ рд╢реНрд░реЗрдгреА рдкрджрд╛рдиреБрдХреНрд░рдо : (dep '+gui) +gui +JsField +Button +UpButton +PickButton +DstButton +ClrButton +ChoButton +Choice +GoButton +BubbleButton +DelRowButton +ShowButton +DnButton +Img +field +Checkbox +TextField +FileField +ClassField +numField +NumField +FixField +BlobField +DateField +SymField +UpField +MailField +SexField +AtomField +PwField +ListTextField +LinesField +TelField +TimeField +HttpField +Radio -> +gui
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ +DnButton
рдПрдХ рдЙрдкрд╡рд░реНрдЧ рдХреНрдпрд╛ рд╣реИ +Button
, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рд╣реИ +gui
ред рд╕реАрдзреЗ рдирд┐рд░реАрдХреНрд╖рдг+DnButton
: (dep '+DnButton) +Tiny +Rid +JS +Able +gui +Button +DnButton -> +DnButton
рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рджреЗрдЦрдиреЗ +DnButton
рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА +Tiny
, +Rid
, +Able
рдФрд░ +Button
ред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ +DnButton
"@ lib / form.l" рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ (class +DnButton +Tiny +Rid +JS +Able +Button) ...
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, тАЬ@ lib / form.lтАЭ рдЬреАрдпреВрдЖрдИ рдврд╛рдВрдЪреЗ рдХрд╛ рдПрдХ рд╡реНрдпрд╛рдкрдХ рд╕рдВрджрд░реНрдн рд╣реИ рдФрд░ рдЗрд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб
рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ, рдЗрдирдкреБрдЯ рдФрд░ рдмрджрд▓рдиреЗ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛ рдХрд╛ рджреГрд╢реНрдп рдкреНрд░рджрд░реНрд╢рди рдФрд░ рдЕрдиреБрдорддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВредHTML рд╕реНрддрд░ рдкрд░, рд╡реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ:- рд╕рд╛рдорд╛рдиреНрдп рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб
- рдкрд╛рда рдХреНрд╖реЗрддреНрд░
- рдЪреЗрдХ рдмреЙрдХреНрд╕
- рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪрд┐рдпрд╛рдБ (рдХреЙрдореНрдмреЛрдХреНрд╕)
- рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдлрд╝реАрд▓реНрдб
- HTML рд▓рд┐рдВрдХ
- рд╕рд╛рджреЗ HTML рдкрд╛рда
рдЪреЗрдХ рдмреЙрдХреНрд╕ рдЙрд╕ рд╡рд░реНрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдЪреЗрдХрдмреЙрдХреНрд╕ , рдЗрди рд╕рднреА рдПрдЪрдЯреАрдПрдордПрд▓-рдЙрддреНрдкрдиреНрди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ +TextField
рдФрд░ рдЕрдкрдиреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрд╡рд░реНрдЧреЛрдВ, рдЬреИрд╕реЗ +NumField
, +DateField
рдЖрджрд┐ рдЙрдирдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрд╕реНрдерд┐рддрд┐ (рдЙрдкрд░реЛрдХреНрдд рд░реВрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ) рдЙрдирдХреЗ рддрд░реНрдХреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИ:рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА "рд╕рд╛рдорд╛рдиреНрдп" рдкрд╛рда рдлрд╝реАрд▓реНрдб рджреЗрдЦреЗ рд╣реИрдВред рд╡реЗ рдПрдХ рдПрдХрд▓ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг 10 рд╡рд░реНрдгреЛрдВ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╕реНрдЯрдо рдлрд╝реАрд▓реНрдб рдмрдирд╛рддрд╛ рд╣реИ: (gui '(+TextField) 10)
рдпрджрд┐ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рддрд░реНрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, '4'), рддреЛ рдЖрдкрдХреЛ рдЯреЗрдХреНрд╕реНрдЯрд░реА рдорд┐рд▓реЗрдЧрд╛: (gui '(+TextField) 10 4)
рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдореВрд▓реНрдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдХреЙрдореНрдмреЛрдХреНрд╕ рджреЗрддрд╛ рд╣реИ: (gui '(+TextField) '("Value 1" "Value 2" "Value 3"))
рдЗрди рддрд░реНрдХреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдлрд╝реАрд▓реНрдб рдХреЛ рд▓реЗрдмрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: (gui '(+TextField) 10 "Plain") (gui '(+TextField) 10 4 "Text Area") (gui '(+TextField) '("Value 1" "Value 2" "Value 3") "Selection")
рдЕрдВрдд рдореЗрдВ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рддрд░реНрдХ рдХреЗ, рдореИрджрд╛рди рд╕рд╛рджреЗ рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, HTML: (gui '(+TextField))
рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП +Var
рдФрд░ +Obj
, HTML рд▓рд┐рдВрдХ рдпрд╛ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рддрд╛рд▓рд┐рдХрд╛ рдорд╛рди рдЬреИрд╕реЗ рд╡рд┐рд╢реЗрд╖ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП, рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ редрд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб
+NumField
рдХрд┐рд╕реА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЙрд╕рдХреА рд╡рд┐рдзрд┐ рдореЗрдВ рджреЗрддрд╛ рд╣реИ val>
рдФрд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд▓реЗрддрд╛ рд╣реИ set>
ред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рдирдВрдмрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рддреЛ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИредрд╡рд░реНрддрдорд╛рди рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╣рдЬрд╛рд░реЛрдВ рд╡рд┐рднрд╛рдЬрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред ######################################################################## (app) (action (html 0 "+NumField" "@lib.css" NIL (form NIL (gui '(+NumField) 10) (gui '(+JS +Button) "Print value" '(msg (val> (: home gui 1))) ) (gui '(+JS +Button) "Set to 123" '(set> (: home gui 1) 123) ) ) ) ) ########################################################################
+FixField
рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рд╕реНрдХреЗрд▓-рдлреИрдХреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рдХреНрд╕реНрдб-рдкреЙрдЗрдВрдЯ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ / рд░рд┐рдЯрд░реНрди рдХрд░рддрд╛ рд╣реИредрджрд╢рдорд▓рд╡ рд╡рд┐рднрд╛рдЬрдХ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред ######################################################################## (app) (action (html 0 "+FixField" "@lib.css" NIL (form NIL (gui '(+FixField) 3 10) (gui '(+JS +Button) "Print value" '(msg (format (val> (: home gui 1)) 3)) ) (gui '(+JS +Button) "Set to 123.456" '(set> (: home gui 1) 123456) ) ) ) ) ########################################################################
рд╕рдордп рдФрд░ рддрд╛рд░реАрдЦ
+DateField
рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреА рддрд╛рд░реАрдЦ рдХрд╛ рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ ред ######################################################################## (app) (action (html 0 "+DateField" "@lib.css" NIL (form NIL (gui '(+DateField) 10) (gui '(+JS +Button) "Print value" '(msg (datStr (val> (: home gui 1)))) ) (gui '(+JS +Button) "Set to \"today\"" '(set> (: home gui 1) (date)) ) ) ) ) ########################################################################
рджрд┐рдирд╛рдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ ( рдбреЗрдЯрд╛рд╕реНрд░ рдФрд░ рдПрдХреНрд╕рдкреЗрдбреИрдЯ рджреЗрдЦреЗрдВ ) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ ред рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдерд╛рди рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ : (locale "DE" "de") -> NIL
рдпрджрд┐ рдХреЛрдИ рд╕реНрдерд╛рди рдЪрдпрдирд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рд╛рд░реВрдк YYYY-MM-DD рд╣реИред рдХреБрдЫ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕реНрдерд╛рди DD.MM.YYYY (DE), YYYY / MM / DD (JP), DD / MM / YYYY (UK), рдпрд╛ MM / DD / YYYY (US) рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВредрдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдХреЗ рджрд┐рдирд╛рдВрдХ рдкреНрд░рд╛рд░реВрдк рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдбрд╛рд▓реА рдЬрд╛рддреА рд╣реИредрднрд▓реЗ рд╣реА рд╕реНрдерд╛рдиреАрдп, +DateField
рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реЛ:- "7" рдЪрд╛рд▓реВ рдорд╛рд╣ рдХрд╛ 7 рд╡рд╛рдВ рджрд┐рди рджреЗрддрд╛ рд╣реИ
- "31" рдпрд╛ "0301" рд╡рд░реНрддрдорд╛рди рд╡рд░реНрд╖ рдХреЗ 3 рдЬрдирд╡рд░реА рдХреЛ рджреЗрддрд╛ рд╣реИ
- "311" рдпрд╛ "3101" рд╡рд░реНрддрдорд╛рди рд╡рд░реНрд╖ рдХрд╛ 31 рдЬрдирд╡рд░реА рджреЗрддрд╛ рд╣реИ
- "0311" рдЗрд╕ рд╡рд░реНрд╖ рдХрд╛ 3 рдирд╡рдВрдмрд░ рджреЗрддрд╛ рд╣реИ
- 1 рдлрд░рд╡рд░реА, 2003 рдХреЛ "1023" рдпрд╛ "010203" рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рдФрд░ рдЗрд╕реА рддрд░рд╣
рдПрдХ рд╕рдорд╛рди рд╡рд░реНрдЧ рд╣реИ +TimeField
ред рдпрд╣ рд╕рдордп рдорд╛рди рд▓реЗрддрд╛ рд╣реИ рдФрд░ рджреЗрддрд╛ рд╣реИ ред ######################################################################## (app) (action (html 0 "+TimeField" "@lib.css" NIL (form NIL (gui '(+TimeField) 8) (gui '(+JS +Button) "Print value" '(msg (tim$ (val> (: home gui 1)))) ) (gui '(+JS +Button) "Set to \"now\"" '(set> (: home gui 1) (time)) ) ) ) ) ########################################################################
рдЬрдм рдХреНрд╖реЗрддреНрд░ рдХреА рдЪреМрдбрд╝рд╛рдИ "8" рд╣реИ, рддреЛ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ HH:MM:SS
ред рдПрдХ рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓реНрдп - "5", +TimeField
рдлреЙрд░реНрдо рдореЗрдВ рдореВрд▓реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ HH:MM
редрдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдордп рдорд╛рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдбрд╛рд▓реА рдЬрд╛рддреА рд╣реИредрдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреГрд╣рджрд╛рдиреНрддреНрд░ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдЕрдзреВрд░рд╛ рдЗрдирдкреБрдЯ рддрд┐рдерд┐ рдХреЗ рд╕рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛрддрд╛ рд╣реИред "125" рдХреЛ "12:05", '124517' рдХреЛ "12:45:17" рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЯреЗрд▓реАрдлреЛрди рдирдВрдмрд░
рдЯреЗрд▓реАрдлреЛрди рдирдВрдмрд░реЛрдВ рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡: рджреЗрд╢ рдХреЛрдб (рдкреНрд░рдореБрдЦ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдмрд┐рдирд╛, рдкреНрд▓рд╕ рдпрд╛ рд╢реВрдиреНрдп), рдлрд┐рд░ рд╕реНрдерд╛рдиреАрдп рдЯреЗрд▓реАрдлреЛрди рдирдВрдмрд░ (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди) рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЦреНрдпрд╛ (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдПрдХ рд╣рд╛рдЗрдлрд╝рди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ)ред рдлреЛрди рдирдВрдмрд░ рдХрд╛ рд╕рдЯреАрдХ рдкреНрд░рд╛рд░реВрдк рдЬреАрдпреВрдЖрдИ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЦреЛрдЬ) рдЧреБрдирд╛ рдЖрдорддреМрд░ рдкрд░ рдмреЗрд╣рддрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ редрдлреЛрди рдирдВрдмрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, +TelField
рджреЗрд╢ рдХреЛрдб рдХреЛ рд╢реВрдиреНрдп рд╕реЗ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рд╕реЗ рджреЗрд╢ рдХреЛрдб рд╣реИ, рдпрд╛ рдпрджрд┐ рдпрд╣ рдПрдХ рд╡рд┐рджреЗрд╢реА рджреЗрд╢ рдХреЛрдб рд╣реИ ( рдЯреЗрд▓рд╕реНрдЯреНрд░реАрдо рджреЗрдЦреЗрдВ ) рдкреНрд▓рд╕ рдЪрд┐рд╣реНрди рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкреНрд░реАрдЬрд░реНрд╡ рдХрд░реЗрдВ редрдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХреА рдЧрдИ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП, рдкреНрд▓рд╕ рд╕рд╛рдЗрди рдпрд╛ рдбрдмрд▓ рд╢реВрдиреНрдп рдХреЛ рдХреЗрд╡рд▓ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рдЕрдЧреНрд░рдгреА рд╢реВрдиреНрдп рдХреЛ рд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рдХреЗ рджреЗрд╢ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рджреЗрдЦреЗрдВ рдПрдХреНрд╕рдкреЗрд▓) )ред ######################################################################## (app) (locale "DE" "de") (action (html 0 "+TelField" "@lib.css" NIL (form NIL (gui '(+TelField) 20) (gui '(+JS +Button) "Print value" '(msg (val> (: home gui 1))) ) (gui '(+JS +Button) "Set to \"49 1234 5678-0\"" '(set> (: home gui 1) "49 1234 5678-0") ) ) ) ) ########################################################################
рдЪреЗрдХ рдмреЙрдХреНрд╕
рдХрдХреНрд╖рд╛ +Checkbox
рд╕рд░рд▓ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдЗрд╕реЗ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░рдиреЗ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдпрд╣ рдПрдХ рдмреВрд▓рд┐рдпрди рдореВрд▓реНрдп ( NIL
рдпрд╛ рдЧреИрд░- NIL
) рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд░рд┐рдЯрд░реНрди T
рдпрд╛ NIL
ред ######################################################################## (app) (action (html 0 "+Checkbox" "@lib.css" NIL (form NIL (gui '(+Checkbox)) (gui '(+JS +Button) "Print value" '(msg (val> (: home gui 1))) ) (gui '(+JS +Button) "On" '(set> (: home gui 1) T) ) (gui '(+JS +Button) "Off" '(set> (: home gui 1) NIL) ) ) ) ) ########################################################################
рдлреАрд▓реНрдб рдЙрдкрд╕рд░реНрдЧ рдХрдХреНрд╖рд╛рдПрдВ
рдЬреАрдпреВрдЖрдИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕ рдкреНрд░реАрдлрд┐рдХреНрд╕ рдХреЗ рдХреЙрдореНрдмреАрдиреЗрдЯрд░рд┐рдпрд▓ рд▓рдЪреАрд▓реЗрдкрди рджреНрд╡рд╛рд░рд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡реЗ рдЖрдкрдХреЛ рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдПрдХ 'рдкрд░рд┐рдЪрд╛рд▓рди рддрд░реАрдХреЗ' рдореЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИред рдпреЗ рд╕рд╛рдзрд╛рд░рдг рд╡рд░реНрдЧ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ "рдЙрдкрд╕рд░реНрдЧ" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдпрд╛ рд╡рд░реНрдЧ рдХреА рд╕реБрдкрд░рдХреНрд▓рд╛рд╕ рд╕реВрдЪреА рдореЗрдВ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдбрд╛рд▓рд╛ рдЬрд╛рдирд╛ рд╣реИ редрдЖрдорддреМрд░ рдкрд░ рд╡реЗ T
рддрд░реНрдХ рд╕реВрдЪреА рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ gui
(рдПрдХ рд╡рд┐рдзрд┐ T
рдПрдХ рд░рдЪрдирд╛рдХрд╛рд░ рд╣реИ (рдПрдХ рдЕрдиреБрд╡рд╛рджрдХ рджреНрд╡рд╛рд░рд╛ рдЯрд┐рдкреНрдкрдгреА)редрдкреНрд░рд╛рд░рдВрдн
+Init
init>
рдЗрд╕ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ ред рдЬрдм рдкреГрд╖реНрда рдкрд╣рд▓реА рдмрд╛рд░ (GET рдЕрдиреБрд░реЛрдз рдХреЗ рджреМрд░рд╛рди) рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрджреЗрд╢ рдШрдЯрдХ init>
рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ +gui
ред +Init
рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд▓реЗрддрд╛ рд╣реИред (gui '(+Init +TextField) "This is the initial text" 30)
рдЕрдиреНрдп рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд╝реАрд▓реНрдб рдХрд╛ рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИрдВ +Var
(рдлрд╝реАрд▓реНрдб рдХреЛ рдПрдХ рдЪрд░ рд╕реЗ +E/R
рдЬреЛрдбрд╝рдирд╛ ) рдФрд░ (рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдлрд╝реАрд▓реНрдб рдХреЛ рдЬреЛрдбрд╝рдирд╛)ред+Cue
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдЖрд╡рд╢реНрдпрдХ" рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЙрд╕ рдЪреАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдВрдЧрд▓ рдмреНрд░реИрдХреЗрдЯреНрд╕ рдореЗрдВ рддрд░реНрдХ рдХреЗ рдореВрд▓реНрдп рдХреЛ рддрднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдЬрдм рдлреАрд▓реНрдб рд╡реИрд▓реНрдпреВ рдмрд░рд╛рдмрд░ рд╣реЛ NIL
рдФрд░ рд╡рд┐рдзрд┐ val>
рд╡рд╛рдкрд╕ рдЖрдП NIL
, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдпрд╣ рдореВрд▓реНрдп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред"<рдпрд╣рд╛рдВ рдкрд╛рда рджрд░реНрдЬ рдХрд░реЗрдВ>" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рдлрд╝реАрд▓реНрдб рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ: (gui '(+Cue +TextField) "Please enter some text here" 30)
рд╕рдХреНрд╖рдо рдФрд░ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ
GUI рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕рдВрджрд░реНрдн-рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЕрдХреНрд╖рдорддрд╛ рдФрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдпрд╛ рд╕рдВрдкреВрд░реНрдг рд░реВрдк рд╣реИред+Able
рд╡рд░реНрдЧ рдЙрдкрд╕рд░реНрдЧ рдПрдХ рддрд░реНрдХ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдШрдЯрдХ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ NIL
ред рд╣рдордиреЗ рдПрдХ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рд╡рд░реНрдЧрдореВрд▓ рдмрдЯрди рдореЗрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦрд╛ ред рдпрд╛ рдПрдХ рдмрдЯрди рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдХреЗрд╡рд▓ рдХреНрд░рд┐рд╕рдорд╕ рдХреЗ рдмрд╛рдж рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (gui '(+Able +Button) '(>= (cdr (date (date))) (12 24)) "Close this year" '(endOfYearProcessing) )
рдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдлрд╝реАрд▓реНрдб, рдЬреЛ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдХреНрд╖рдо рд╣реИ (gui '(+Able +PwField) '(not *Login) 10 "Password")
рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рдЙрдкрд╕рд░реНрдЧ рд╣реИ +Lock
, рдЬреЛ рдШрдЯрдХ рдХреЛ рдмрд┐рдирд╛ рд╢рд░реНрдд рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (gui '(+Lock +NumField) 10 "Count")
("10" рдФрд░ "рдЧрдгрдирд╛" рдХреЗ рд▓рд┐рдП рддрд░реНрдХ рд╣реИрдВ +NumField
) рдФрд░ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдмрдирд╛рддрд╛ рд╣реИред рдЧреИрд░- рддрд░реНрдХрд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ рдкреВрд░реЗ рдлреЙрд░реНрдо рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рд░реВрдк рдореЗрдВ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдХреНрд░рд┐рд╕рдорд╕ рд╕реЗ рдкрд╣рд▓реЗ рд░реАрдб-рдУрдирд▓реА рдлреЙрд░реНрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВdisable
NIL
(form NIL (disable (> (12 24) (cdr (date (date))))) # Disable whole form (gui ..) .. )
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓реЙрдХ рдХрд┐рдП рдЧрдП рдлреЙрд░реНрдо рдореЗрдВ, рдЕрдХреНрд╕рд░ рдХреБрдЫ рдШрдЯрдХреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди, рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдпрд╛ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдлреЙрд░реНрдо рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдЙрдкрд╕рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ +Rid
ред (form NIL (disable (> (12 24) (cdr (date (date))))) (gui ..) .. (gui '(+Rid +Button) ..) # Button is enabled despite the disabled form .. )
рд╕реНрд╡рд░реВрдкрдг
GUI рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧ рдЖрдкрдХреЛ рд╕реВрдХреНрд╖реНрдорддрд╛ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдШрдЯрдХреЛрдВ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреА рддрд░рд╣ +NumField
рдпрд╛ +DateField
, рд╡реЗ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВ set>
рдпрд╛ val>
ред+Set
рдПрдХ рддрд░реНрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рднреА рдХрд┐рд╕реА рдХреНрд╖реЗрддреНрд░ рдХреЛ рдПрдХ рдорд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рдЕрдкрд░рдХреЗрд╕ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП (gui '(+Set +TextField) uppc 30)
+Val
рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИ +Set
ред рдпрд╣ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рднреА рдлрд╝реАрд▓реНрдб рдорд╛рди рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рд╕реА рдлрд╝реАрд▓реНрдб рдорд╛рди рдХрд╛ рд╡рд░реНрдЧ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (gui '(+Val +NumField) '((N) (* NN)) 10)
+Fmt
- рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИ +Set
рдФрд░ +Val
, рдпрд╣ рджреЛ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдкрд╛рда рдХреЛ рдмрдбрд╝реЗ рдЕрдХреНрд╖рд░реЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд╛рдкрд╕ (gui '(+Fmt +TextField) uppc lowc 30)
+Map
(like +Fmt
) рджреЛ-рддрд░рдлрд╝рд╛ рдкреНрд░рд╕рд╛рд░рдг рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд░реИрдЦрд┐рдХ рдЦреЛрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЬреЛрдбрд╝реА рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕реАрдПрдЖрд░ рдореИрдк рдХрд┐рдП рдЧрдП рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реАрдбреАрдЖрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдореИрдк рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдорд╛рди рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ set>
рдпрд╛ val>
, рдпрд╣ 'рдЬреИрд╕рд╛ рд╣реИ' рдкреНрд░рд╕рд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИредрдЖрдорддреМрд░ рдкрд░ +Map
рдХреЙрдореНрдмреЛрдХреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рджреЗрдЦреЗрдВ )ред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ, рджреЛ рдФрд░ рддреАрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдирдВрдмрд░ 1, 2, рдпрд╛ 3 рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ ######################################################################## (app) (action (html 0 "+Map" "@lib.css" NIL (form NIL (gui '(+Map +TextField) '(("One" . 1) ("Two" . 2) ("Three" . 3)) '("One" "Two" "Three") ) (gui '(+Button) "Print" '(msg (val> (field -1))) ) ) ) ) ########################################################################
рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ
рдЬрдм рднреА рдЬреАрдпреВрдЖрдИ рдореЗрдВ рдПрдХ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, action
рддреЛ рд╡рд░реНрддрдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╡рд░реНрддрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐) рдХреЛ рдЬреАрдпреВрдЖрдИ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдШрдЯрдХреЛрдВ (рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░) рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ upd>
ред рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдлрд┐рд░ рдЙрдЪрд┐рдд рдореВрд▓реНрдп рд▓реЗрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рдЪрд░ рд╕реЗ рдорд╛рди рд▓реЛрдб рдХрд░рдирд╛ рдпрд╛ рдирдП рдорд╛рди рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛) рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПредрдЬрдмрдХрд┐ рд╡рд┐рдзрд┐ upd>
рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдлреНрд░реЗрдорд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рд╣реА рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕реЗ рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореМрдЬреВрджрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ +Upd
ред рдПрд╕рдЯреАрдбреАрдЖрд░рдЖрд░ рдореЗрдВ рдЕрджреНрдпрддрди рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ ######################################################################## (app) (default *Number 0) (action (html 0 "+Upd" "@lib.css" NIL (form NIL (gui '(+Upd +Var +NumField) '(prog (extra) (msg *Number)) '*Number 8 ) (gui '(+JS +Button) "Increment" '(inc '*Number) ) ) ) ) ########################################################################
рдорд╛рдиреНрдпрддрд╛
рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рддреНрдпрд╛рдкрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдЪрд┐рдд рд╕рдордп рдкрд░ рд╕рднреА рдШрдЯрдХреЛрдВ рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ chk>
ред рдпрджрд┐ рдорд╛рди рдорд╛рдиреНрдп рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рдзрд┐ рд╡рд╛рдкрд╕ рдЖрдиреА рдЪрд╛рд╣рд┐рдП NIL
, рдЕрдиреНрдпрдерд╛, рддреНрд░реБрдЯрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧредрдХрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ chk>
ред рдХрдХреНрд╖рд╛ +NumField
рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЗрдирдкреБрдЯ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреА рд╣реИ, +DateField
- рдХреИрд▓реЗрдВрдбрд░ рддрд┐рдерд┐ рдХреА рд╢реБрджреНрдзрддрд╛редрдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрди-рдж-рдлреНрд▓рд╛рдИ рд╕рддреНрдпрд╛рдкрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ +Chk
ред рдирд┐рдореНрди рдХреЛрдб рдХреЗрд╡рд▓ рдЕрдВрдХреЛрдВ рдХреЛ 9 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ: рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ or
рдкрд╣рд▓реЗ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЛ рд╕реМрдВрдкрддреА рд╣реИ +NumField
рдФрд░ - рдЕрдЧрд░ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд▓реМрдЯрд╛рддреА рд╣реИ - рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп 9 рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдкрд░ рддреНрд░реБрдЯрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрддрд╛ рд╣реИред ######################################################################## (app) (action (html 0 "+Chk" "@lib.css" NIL (form NIL (gui '(+Chk +NumField) '(or (extra) (and (> (val> This) 9) "Number too big") ) 12 ) (gui '(+JS +Button) "Print" '(msg (val> (field -1))) ) ) ) ) ########################################################################
рдЕрдзрд┐рдХ рд╕реАрдзреЗ рд╕рддреНрдпрд╛рдкрди рдмрд┐рд▓реНрдЯ-рдЗрди рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ +Limit
ред рдпрд╣ maxlength
рдЙрддреНрдкрдиреНрди HTML рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрдиреБрдорддрд┐ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдг рджрд░реНрдЬ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред ######################################################################## (app) (action (html 0 "+Limit" "@lib.css" NIL (form NIL (gui '(+Limit +TextField) 4 8) (gui '(+JS +Button) "Print" '(msg (val> (field -1))) ) ) ) ) ########################################################################
рдбреЗрдЯрд╛ рд▓рд┐рдВрдХ
рдпрджреНрдпрдкрд┐ set>
рд╡реЗ val>
рдПрдХ рдЬреАрдпреВрдЖрдИ рдШрдЯрдХ рд╕реЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддрд░реАрдХреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдЕрдХреНрд╕рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдШрдЯрдХ рд╕реАрдзреЗ рд▓рд┐рд╕реНрдк рдЖрдВрддрд░рд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдЪрд░ рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддреЗ рд╣реИрдВредрдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧ +Var
рдПрдХ рдЪрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ ( рдлрд╝рдВрдХреНрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ var
- рдкреНрд░рддреАрдХ рдпрд╛ рд╡рд┐рдкрдХреНрд╖ рдЬреЛрдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд )ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо "рдЪрд░" рдорд╛рди рдХреЗ рд╕рд╛рде рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░ +TextField
рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ ред рдкреНрд░рд┐рдВрдЯ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рдХреЗ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред ######################################################################## (app) (setq *TextVariable "abc") (action (html 0 "+Var" "@lib.css" NIL (form NIL (gui '(+Var +TextField) '*TextVariable 8) (gui '(+JS +Button) "Print" '(msg *TextVariable) ) ) ) ) ########################################################################
+E/R
рдПрдХ рдЗрдХрд╛рдИ / рд╕рдВрдмрдВрдз рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реАрдПрдЖрд░ рдореЗрдВ рдПрдХ рд╕рдВрдмрдВрдз рдХреЗ рд╕рд╛рде рдПрдХ рдЬреЛрдбрд╝реА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП nm
, рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП) рдФрд░ рд╕реАрдбреАрдЖрд░ рдореЗрдВ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рдЖрдорддреМрд░ рдкрд░ рд╡рд░реНрддрдорд╛рди рдлреЙрд░реНрдо (: home obj)
рдХреА рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдПрдХ рд╡рд╕реНрддреБ obj
)редрдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрдердХ рдФрд░ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ nr
рдФрд░ nm
рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдЧреБрдгреЛрдВ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ *Obj
ред ######################################################################## (when (app) # On start of session (class +Tst +Entity) # Define data model (rel nr (+Number)) # with a number (rel nm (+String)) # and a string (pool (tmp "db")) # Create temporary DB (setq *Obj # and a single object (new! '(+Tst) 'nr 1 'nm "New Object") ) ) (action (html 0 "+E/R" "@lib.css" NIL (form NIL (gui '(+E/R +NumField) '(nr . *Obj) 8) # Linkage to 'nr' (gui '(+E/R +TextField) '(nm . *Obj) 20) # Linkage to 'nm' (gui '(+JS +Button) "Show" # Show the object '(out 2 (show *Obj)) ) ) ) ) # on standard error ########################################################################
рдмрдЯрди
рдмрдЯрди, рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ (POST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИредрдореВрд▓ рд░реВрдк рд╕реЗ +Button
рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ- рдирд╛рдо, рдЬреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдпрд╛ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
- рд╡реИрдХрд▓реНрдкрд┐рдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд╛рдо рдЬреЛ рдмрдЯрди рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рдФрд░ рдПрдХ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред
рдиреАрдЪреЗ рдПрдХ рдирд╛рдо рдФрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдиреНрдпреВрдирддрдо рдмрдЯрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ: (gui '(+Button) "Label" '(doSomething))
рдФрд░ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдирд╛рдореЛрдВ рдХрд╛ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╣реИ, рдЬреЛ рдмрдЯрди рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ: (gui '(+Button) "Enabled" "Disabled" '(doSomething))
рд╕рд╛рджреЗ рдкрд╛рда рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЫрд╡рд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдмрд▓ рдХреЛ рдПрдХ рдкреНрд░рддреАрдХ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП T
: (gui '(+Button) T "img/enabled.png" "img/disabled.png" '(doSomething))
рдЬрдм рдпрд╣ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдПрдЧреА action
( рдкреНрд░рдкрддреНрд░ рджреЗрдЦреЗрдВ )редрдЕрдиреНрдп рдШрдЯрдХреЛрдВ рдХреА рддрд░рд╣, рдПрдХ рдмрдЯрди рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рдЙрдкрд╕рд░реНрдЧ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рдЙрдирдХреЗ рд╕рдВрдпреЛрдЬрди рдЙрдкрд▓рдмреНрдз рд╣реИрдВредрд╕рдВрд╡рд╛рдж рдмрдЯрди
рдЕрд▓рд░реНрдЯ рдФрд░ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ ред рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕реЗ рдХрд┐ рдЯреЗрдмрд▓ рдореЗрдВ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдирд╛ рдпрд╛ рдЕрдиреНрдп рджреБрд╖реНрдкреНрд░рднрд╛рд╡, рдРрд╕реЗ рд╡рд┐рд╢реЗрд╖ рдмрдЯрди рд╣реИрдВ рдЬреЛ рдЕрдкрдиреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдпрд╛ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ редрдЗрд╕ рддрд░рд╣ рдХреЗ рдмрдЯрди рдХреЛ рдЖрдо рддреМрд░ рдкрд░ рдЙрдкрд╡рд░реНрдЧреЛрдВ рд╣реИрдВ +Close
, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ closeButton
, cancelButton
, yesButton
рдпрд╛ noButton
ред рд╣рдордиреЗ рдЕрд▓рд░реНрдЯ рдФрд░ рдбрд╛рдпрд▓реЙрдЧ рдореЗрдВ рдХрдИ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗ редрд╕рдХреНрд░рд┐рдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдЬрдм рдПрдХ рдмрдЯрди рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рддрд╛ рд╣реИ +JS
(рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рддреЛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдмрдЯрди рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рддреЗрдЬрд╝ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдЦрд╛рдПрдЧрд╛редрдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ +JS
рд╕рд╛рдорд╛рдиреНрдп POST рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА GUI рдШрдЯрдХреЛрдВ рдХреА рдХреЗрд╡рд▓ рд╕рд╛рдордЧреНрд░реА рдХреЛ XMLHttpRequest рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЕрджреНрдпрддрди рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреВрд░реЗ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИ, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛрдиреЗ рдкрд░ рдкреГрд╖реНрда рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рднреА рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИред рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИредрдпрджрд┐ рдпрд╣ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдПрдХ рдирд┐рдпрдорд┐рдд POST рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдлреЙрд░реНрдо рдЬрдорд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редрдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ+JS
HTML рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рд╡рд╛рд▓реЗ рдмрдЯрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдЦреЛрд▓реЗрдВ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╕рдордЧреНрд░ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рднреА рдЦрд░рд╛рдм рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ XMLHttpRequest рдХреЛ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛редрдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ, рддреЛ XMLHttpRequest рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд╝реЙрд░реНрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛, рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде, рдмрд╕ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рдФрд░ рдЗрддрдирд╛ рдЪрд┐рдХрдирд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рдиреНрдпреВрдирддрдо рдкреВрд░реНрдг рдЖрд╡реЗрджрди
PicoLisp рд╡рд┐рддрд░рдг рдореЗрдВ рдРрдк / рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдПрдХ рдиреНрдпреВрдирддрдо рд▓реЗрдХрд┐рди рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕ рдЕрд░реНрде рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВредрдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд░рд▓реАрдХреГрдд рдИрдЖрд░рдкреА рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ / рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛, рдорд╛рд▓ (рдкреЛрдЬреАрд╢рди), рдСрд░реНрдбрд░ рдФрд░ рдЕрдиреНрдп рдбреЗрдЯрд╛ рд╣реЛрддреЗ рд╣реИрдВред рдСрд░реНрдбрд░ рдПрдВрдЯреНрд░реА рдлреЙрд░реНрдо рдЧреНрд░рд╛рд╣рдХ рдФрд░ рдЙрддреНрдкрд╛рдж рдЪрдпрди, рдХреАрдорддреЛрдВ, рд╕реВрдЪреА рдФрд░ рдХреБрд▓ рд▓рд╛рдЧрдд рдХреА рдЧрдгрдирд╛ рдХреЗ рд▓рд╛рдЗрд╡ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдордХреНрдЦреА рдкрд░ рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рддрд╛ рд╣реИред рдлрд╛рдЗрди-рдЯреНрдпреВрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ, рднреВрдорд┐рдХрд╛рдУрдВ рдФрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрд╡реЗрджрди рдЫрд╣ рднрд╛рд╖рд╛рдУрдВ (рдЕрдВрдЧреНрд░реЗрдЬреА, рд╕реНрдкреЗрдирд┐рд╢, рдЬрд░реНрдорди, рдиреЙрд░реНрд╡реЗрдЬрд┐рдпрди, рд░реВрд╕реА рдФрд░ рдЬрд╛рдкрд╛рдиреА) рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рд╣реИ, рдЗрд╕рдореЗрдВ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдФрд░ рджреЛ рдирдореВрдирд╛ рд░рд┐рдкреЛрд░реНрдЯ рд╣реИрдВред
рд╢реБрд░реБрдЖрдд рд╣реЛ рд░рд╣реА рд╣реИ
рд╡реИрд╢реНрд╡рд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (рджреЗрдЦреЗрдВред рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдкрдирд╛ ), рд╕реНрдерд╛рди рдЬрд╣рд╛рдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдХрдбрд╝реА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд░реНрддрдорд╛рди рдХрд╛рдордХрд╛рдЬреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рд░рди рд╕рдордп рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдЕрдиреНрдп рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП) рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред $ ln -s /usr/share/picolisp/app
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ $ pil app/main.l -main -go +
рдпрд╛ рдЙрддреНрдкрд╛рджрди рдореЛрдб рдореЗрдВ (рдЧреИрд░-рдбрд┐рдмрдЧ) $ pil app/main.l -main -go -wait
рдФрд░ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ ' http: // localhost: 8080 ' рдкрд░ рдЬрд╛рдПрдВред рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ", рдкрд╛рд╕рд╡рд░реНрдб "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ" рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирдореВрдирд╛ рдбреЗрдЯрд╛ рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреА рднреВрдорд┐рдХрд╛рдПрдВ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рдХ рд╕реАрдорд┐рдд рд╣реИрдВредрдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рдирд╛ app.7fach.de рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЗрд╕ рдЖрд╡реЗрджрди рдХреЗ рдСрдирд▓рд╛рдЗрди рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ редрд╕реНрдерд╛рдиреАрдпрдХрд░рдг
рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╛ рдмрд╛рдж рдореЗрдВ, рдЖрдк рдПрдХ рдЕрд▓рдЧ рднрд╛рд╖рд╛ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ "рдмрджрд▓реЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рднреА рдЬреАрдпреВрдЖрдИ рдШрдЯрдХреЛрдВ (рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкрд╛рда рдирд╣реАрдВ), рд╕рд╛рде рд╣реА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рд░реВрдк, рджрд┐рдирд╛рдВрдХ рдФрд░ рдлреЛрди рдирдВрдмрд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛редрдиреЗрд╡рд┐рдЧреЗрд╢рди
рдмрд╛рдИрдВ рдУрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЗрдиреВ рджреЛ рдЖрдЗрдЯрдо "рд╣реЛрдо" рдФрд░ "рд▓реЙрдЧрдЖрдЙрдЯ" рдФрд░ рддреАрди рд╕рдмрдореЗрдирд╕ "рдбреЗрдЯрд╛", "рд░рд┐рдкреЛрд░реНрдЯ" рдФрд░ "рд╕рд┐рд╕реНрдЯрдо" рджрд┐рдЦрд╛рддрд╛ рд╣реИред"рд╣реЛрдо" рдФрд░ "рд▓реЙрдЧрдЖрдЙрдЯ" рджреЛрдиреЛрдВ рдЖрдкрдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЙрдЧрд┐рди рдлреЙрд░реНрдо рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬ рджреЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдХрд╣рддреЗ рд╣реИрдВ, рдПрдХ рдЕрд▓рдЧ рднреВрдорд┐рдХрд╛ рдХреЗ рд▓рд┐рдП), "рд▓реЙрдЧрдЖрдЙрдЯ" рдФрд░ - рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд - рд╕рдВрднрд╡ рд╕рд░реНрд╡рд░ рд░реБрдХрд╛рд╡рдЯреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓реЙрдЧрдЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред"рдбреЗрдЯрд╛" рд╕рдмрдореЗрдиреВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛ рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рдСрд░реНрдбрд░, рдорд╛рд▓, рдЧреНрд░рд╛рд╣рдХ рдФрд░ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ред рд░рд┐рдкреЛрд░реНрдЯ рд╕рдмрдореЗрдиреВ рдореЗрдВ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдФрд░ рдмрд┐рдХреНрд░реА рдкрд░ рджреЛ рд╕рд░рд▓ рд░рд┐рдкреЛрд░реНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред "рд╕рд┐рд╕реНрдЯрдо" рд╕рдмрдореЗрдиреВ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдФрд░ рдЙрдирдХреА рднреВрдорд┐рдХрд╛рдУрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИредрдкреНрд░рддреНрдпреЗрдХ рд╕рдмрдореЗрдиреВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдмрдВрдж рдФрд░ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╕рд╛рде рдХрдИ рдЦреБрд▓реЗ рд╕рдмрдореЗрдирд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЖрдкрдХреЛ рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдмреАрдЪ рдЬрд▓реНрджреА рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИредрдПрдХ рд╕рдХреНрд░рд┐рдп рдореЗрдиреВ рдЖрдЗрдЯрдо рдПрдХ рдЕрд▓рдЧ рд╕реВрдЪреА рдорд╛рд░реНрдХрд░ рд╢реИрд▓реА рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИредрд╡рд╕реНрддреБ рдЪрдпрди
"рдбреЗрдЯрд╛" рдпрд╛ "рд╕рд┐рд╕реНрдЯрдо" рд╕рдмрдореЗрдиреВ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдЗрд╕ рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдЦреЛрд▓рддрд╛ рд╣реИред рдЖрдк рдПрдХ рдЦреЛрдЬ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЦреЛрдЬ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ (рдпрд╛ рдХреЗрд╡рд▓ рджрд░реНрдЬ рдХрд░реЗрдВ) рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВредрдЬрдмрдХрд┐ "рднреВрдорд┐рдХрд╛" рдФрд░ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рдореЗрдВ рд╕рд░рд▓ рд╕рдВрд╡рд╛рдж рд╕рдВрд╕реНрдерд╛рдУрдВ (рдХреЗрд╡рд▓ рдирд╛рдо рд╕реЗ рдЦреЛрдЬ) рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрд╕реНрдерд╛рдПрдВ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдирджрдВрдбреЛрдВ рд╕реЗ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд░реАрд╕реЗрдЯ рдмрдЯрди рд╕рдВрдкреВрд░реНрдг рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдирдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдмрдЯрди "рдиреНрдпреВ" рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдореЗрдВ "@" рд▓рд┐рдВрдХ (рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП) рдпрд╛ "@" рдмрдЯрди рд╣реЛрдЧрд╛ (рд╡рд░реНрддрдорд╛рди рдлреЙрд░реНрдо рдореЗрдВ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП)редрдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЦреЛрдЬ рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╡рд╛рд▓реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рджреЗрддрд╛ рд╣реИрдЦреЛрдЬ рдорд╛рдкрджрдВрдбред рдкрд╛рда рдХреЗ рд▓рд┐рдП рддреБрд▓рдирд╛ рдЕрдВрдХ рдФрд░ рд╡рд░реНрдгрд╛рдиреБрдХреНрд░рдо рдореЗрдВ (рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓!) рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд░реВрдк рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк "рдЧреНрд░рд╛рд╣рдХ / рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛" рд╕рдВрд╡рд╛рдж рдореЗрдВ "рд╢рд╣рд░" рдХреНрд╖реЗрддреНрд░ рдореЗрдВ "рдирд┐: рд╢реБрд▓реНрдХ" рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореВрд▓реНрдп "рдлреНрд░реАрдЯрд╛рдЙрди" рдЦреЛрдЬ рдорд╛рдирджрдВрдбреЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ред рджреВрд╕рд░реА рдУрд░, "рдлреНрд░реА" рдпрд╛ "рдЯрд╛рдЙрди" рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдкрд░ "рдлреНрд░реАрдЯрд╛рдЙрди" рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛редрд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреБрдЫ рдЦреЛрдЬ рдлрд╝реАрд▓реНрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╡реНрдпрд╡рд╣рд╛рд░ рджрд┐рдЦрд╛рддреА рд╣реИрдВ:- рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ, рдХрдВрдкрдирд┐рдпреЛрдВ рдпрд╛ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рдирд╛рдо рд╕рд╣рд┐рд╖реНрдгреБ рдЦреЛрдЬреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, "рдорд┐рд▓рд░" рдХреЗ рдмрдЬрд╛рдп рдереЛрдбрд╝реЗ рд╡рд░реНрддрдиреА рд╡рд╛рд▓реЗ рдирд╛рдореЛрдВ ("рдореБрд▓рд░") рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рдХрд▓реНрдк ("рдУрдХреНрд╕" "рд╕реЗрд╡рди рдУрдХреНрд╕ рд▓рд┐рдорд┐рдЯреЗрдб" рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛)ред
- рдЦреЛрдЬ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдПрдХ рдХрдо рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдКрдкрд░реА рд╕реАрдорд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рди рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдорд╛рдирджрдВрдб рд╕реЗ рдХрдо рдпрд╛ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рдХреЗ рд╕рд╛рде рдЦреЛрдЬ рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдСрд░реНрдбрд░" рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдореЗрдВ, рдЙрдирдХреА рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рддрд┐рдерд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЖрджреЗрд╢реЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд╡реАрдирддрдо рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ред
рд╕реНрдХреНрд░реЙрд▓ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдмрд┐рдирд╛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд╕реНрддреБ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧреАред рд╡рд╛рдВрдЫрд┐рдд рдХреЙрд▓рдо рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ: рдХреБрдЫ рд╕рдВрд╡рд╛рдж ("рдЖрдЗрдЯрдо" рдФрд░ "рдСрд░реНрдбрд░") рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛")редрд╕рдВрдкрд╛рджрди
рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдорддреМрд░ рдкрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреА рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдореВрд▓ рд▓реЗрдЖрдЙрдЯ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрд╕рдВрдЧрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рд╢реАрд░реНрд╖рдХ рдХреЗ рддрд╣рдд (рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдореЗрдиреВ рдЖрдЗрдЯрдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ) рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдИрдбреА (рдирд╛рдо, рд╕рдВрдЦреНрдпрд╛, рдЖрджрд┐) рд╣реИ, рдФрд░ рдлрд┐рд░ рдмрд╛рдИрдВ рдУрд░ "рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ" рдмрдЯрди рдФрд░ "рд╣рдЯрд╛рдПрдВ" рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реИ, "рдЪреБрдиреЗрдВ" рдФрд░ рджрд╛рдИрдВ рдУрд░ рджреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд▓рд┐рдВрдХредрдкреНрд░рдкрддреНрд░ рдХреЛ рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореЛрдб рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдкрд┐рдЫрд▓реЗ PicoLisp рдЬрд╛рд╡рд╛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд╣рд╛рдВ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА, рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рддреБрд░рдВрдд рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЬреАрдпреВрдЖрдИ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддреЗ рдереЗ)редрдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ "рдПрдбрд┐рдЯ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЕрдирдиреНрдп рдПрдХреНрд╕реЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рдкрддреНрд░ рдЕрдирд▓реЙрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдВрдкрд╛рджрди рдмрдЯрди рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕рдХреЗ рдирд╛рдо рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛редрдЕрдкрд╡рд╛рдж рд╡реЗ рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЕрднреА "рдиреНрдпреВ" рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реЛрдВрдЧреЗ, рдФрд░ "рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ" рдмрдЯрди "рдкреВрд░реНрдг" рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редрд╣рдЯрд╛рдПрдБ рдмрдЯрди рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдкреВрдЫрддреЗ рд╣реБрдП рдПрдХ рд╕рдВрд╡рд╛рдж рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрдЯрди "рд░рд┐рд╕реНрдЯреЛрд░" рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбрд┐рд▓реАрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рд╡реЗ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдЬрдм "рд╣рдЯрд╛рдП рдЧрдП" рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдХреЛрд╖реНрдардХ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИредрдЪрдпрди рдмрдЯрди (рдмрд╛рд░-рдмрд╛рд░) рдЗрд╕ рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЦреЛрдЬ рдЦреЛрдЬ рдХреЙрд▓ рдХреЗ рдмреАрдЪ рдЦреЛрдЬ рдорд╛рдкрджрдВрдб рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВредрдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд▓рд┐рдВрдХ рдПрдХ рд╕рдорд╛рди рдЙрджреНрджреЗрд╢реНрдп рдХреА рд╕реЗрд╡рд╛ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдЖрдкрдХреЛ рджрд┐рдП рдЧрдП рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рдХрджрдо рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВредрдЕрдиреНрдп рдмрдЯрди, рдкреНрд░рдХреГрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдорддреМрд░ рдкрд░ рдлреЙрд░реНрдо рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдиреАрдЪреЗ рджрд╛рдИрдВ рдУрд░ рдПрдХ рдФрд░ "рдПрдбрд┐рдЯ" / "рдбрди" рдмрдЯрди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПредрдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдХреЗ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдХрд╣рд╛ рд╣реИ, рдлреЙрд░реНрдо рдХрд╛ рдХреЛрдИ рднреА рдмрдЯрди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рд░реВрдк рдореЗрдВ, Done рдмрдЯрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ Edit рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдкрд╛рджрди рдореЛрдб рдмрд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕реЗ рд╣реА рдХреЛрдИ рдЕрдиреНрдп рд╡рд╕реНрддреБ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд┐рдВрдХ (рдкреЗрдВрд╕рд┐рд▓ рдЖрдЗрдХрди), рд╢реАрд░реНрд╖ рджрд╛рдпрд╛рдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд▓рд┐рдВрдХ рдпрд╛ рдЦреЛрдЬ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдореЗрдВ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИредрдмрдЯрди рдмрдирд╛рдо рд▓рд┐рдВрдХ
HTTP- рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рдпрд╛ рддреЛ HTML рд▓рд┐рдВрдХ рдкрд░ рдпрд╛ рд╕рдмрдорд┐рдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рджреЗрдЦреЗрдВ ( рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рднреА рджреЗрдЦреЗрдВ )ред рд╡рд░реНрддрдорд╛рди рд░реВрдк рдореЗрдВ рджрд░реНрдЬ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рднрд╛рд╡реЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред- рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рд╣рдо рдкреГрд╖реНрда рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рдпрд╛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдкрд░рд┐рд╡рд░реНрддрди рддреНрдпрд╛рдЧ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
- рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рд╣рдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдЪрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд▓реЗрдЖрдЙрдЯ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдФрд░ рдмрдЯрди рдХреЛ рднреЗрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдЯрди рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ рдЬрдм рдЕрдиреНрдп рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдирдХ рдмрдЯрди рдкрд╕рдВрдж рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ; рд╡реЗ рдЖрдорддреМрд░ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рддреАрди-рдЖрдпрд╛рдореА рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВредрдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рддреЛ рдкрд░рд┐рд╡рд░реНрддрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗредрдмрдЯрди рдХрд╛ рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рд╣реЛрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдХрд╛ рдПрдХ рдЕрднрд┐рдиреНрди рдЕрдВрдЧ рд╣реИред рдпрд╣ рдЙрдкрдпреБрдХреНрдд рд╢реИрд▓рд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдбреЗрдЯрд╛ рдореЙрдбрд▓
рдЗрд╕ рдЧреИрдЬреЗрдЯ рдХреЗ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдЫрд╣ рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ ("рдПрдкреНрд▓рд┐рдХреЗрд╢рди / er.l" рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЪрд┐рддреНрд░ рдИ / рдЖрд░ рджреЗрдЦреЗрдВ):### рдЗрдХрд╛рдИ / рд╕рдВрдмрдВрдз ###
#
# рдПрдирдЖрд░ рдПрдирдПрдо рдПрдирдПрдо рдПрдирдПрдо рдПрдирдПрдо
# # | | | |
# + - * ---- * - + + - * ---- * - + + - * ----- +
# # | рд╕реБрдкрд░ | | | |
# str --* CuSu O-----------------* Item *-- inv | Role @-- perm
# | | | | | |
# +-*-*--O-+ +----O---+ +----@---+
# | | | | | usr
# nm tel -+ | | | |
# | | | | itm | role
# +-*-----+ | | +-------+ +---*---+ +----*---+
# | | | | | | ord | | | |
# | Sal +---+ +---* Ord @--------* Pos | nm --* User *-- pw
# | | cus | | pos | | | |
# +-*---*-+ +-*---*-+ +-*---*-+ +--------+
# | | | | | |
# hi sex nr dat pr cnt
- тАФ
+CuSu
(/), +Item
() +Ord
(). +Pos
.+Role
+User
.
рдХрдХреНрд╖рд╛рдПрдВ +Role
рдФрд░ +User
"@ lib / adm.l" рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ ред +Role
рдПрдХ рдирд╛рдо, рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рдЗрд╕ рднреВрдорд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред +User
рдПрдХ рдирд╛рдо, рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рднреВрдорд┐рдХрд╛ рд╣реИред"рдПрдкреНрд▓рд┐рдХреЗрд╢рди / er.l" рдореЗрдВ, рд╡рд░реНрдЧ +Role
рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреИрд▓рддрд╛ рд╣реИ url>
ред рдХреЛрдИ рднреА рд╡рд╕реНрддреБ рдЬрд┐рд╕рдХреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдРрд╕реА рд╡рд┐рдзрд┐ рд╣реИ, рд╡рд╣ рд╕реНрд╡рдпрдВ GUI рдореЗрдВ рдореИрдк рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ "рдРрдк / рд░реЛрд▓.рдПрд▓" рд▓реЛрдб рдХреА рдЬрд╛рдПрдЧреА - рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдЪрд░ рдЗрд╕рдХреА *ID
рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП - рд╣рд░ рдмрд╛рд░ рдЬрдм рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ HTML рд▓рд┐рдВрдХ рд╕рдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИредрдХреНрд▓рд╛рд╕ +User
рднреА рдмрдврд╝рд╛ рджреА рд╣реИред рд▓реЙрдЧрд┐рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреВрд░рд╛ рдирд╛рдо, рдИ-рдореЗрд▓ рдФрд░ рдлреЛрди рдирдВрдмрд░ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рд╡рд┐рдзрд┐ url>
редрдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдСрд░реНрдбрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдШреВрдорддрд╛ рд╣реИред рдЖрджреЗрд╢ рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛, рджрд┐рдирд╛рдВрдХ, рдЧреНрд░рд╛рд╣рдХ (рдкреНрд░рддрд┐рд▓рд┐рдкрд┐) рд╣реИ+CuSu
) рдФрд░ рдкрджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА (рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ +Pos
)ред рд╡рд┐рдзрд┐ sum>
рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рдХреБрд▓ рдореВрд▓реНрдп рдХреА рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИредрдкреНрд░рддреНрдпреЗрдХ рд╡рд╕реНрддреБ рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ +Item
(рдЙрддреНрдкрд╛рдж), рдореВрд▓реНрдп рдФрд░ рдорд╛рддреНрд░рд╛ рдХрд╛ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИред рд▓рд╛рдЗрди рдЖрдЗрдЯрдо рдХрд╛ рдореВрд▓реНрдп рд╕рдВрдмрдВрдзрд┐рдд рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореВрд▓реНрдп рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИредрдкреНрд░рддреНрдпреЗрдХ рдЙрддреНрдкрд╛рдж рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛, рд╡рд┐рд╡рд░рдг, рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ (рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рднреА +CuSu
), рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА (рдЕрдВрддрд┐рдо рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рд╕реЗ рдЖрдЗрдЯрдо рдХреА рд╕рдВрдЦреНрдпрд╛) рдФрд░ рдХреАрдордд рд╣реЛрддреА рд╣реИред рд╡рд┐рдзрд┐ cnt>
рдЗрд╕ рдЙрддреНрдкрд╛рдж рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдЯреЙрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рдФрд░ рдмреЗрдЪреА рдЧрдИ рд╡рд╕реНрддреБрдУрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░редрдлрдВрдХреНрд╢рди рдХреЙрд▓dbs
рдЕрдВрдд рдореЗрдВ, "рдПрдкреНрд▓рд┐рдХреЗрд╢рди / er.l" рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рднреМрддрд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪреА рдореЗрдВ CAR рдореЗрдВ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ 64 (64 << N) рдХреА рд╢рдХреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмреНрд▓реЙрдХ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИред CDR рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг (рдпрджрд┐ рддрддреНрд╡ рдПрдХ рд╡рд░реНрдЧ рдЪрд┐рдиреНрд╣ рд╣реИ) рдпрд╛ рдЯреНрд░реА рдиреЛрдбреНрд╕ (рдпрджрд┐ рддрддреНрд╡ рд╡рд░реНрдЧ рдЪрд┐рдиреНрд╣ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдо рдХреА рд╕реВрдЪреА рд╣реИ) рдХреЛ рдЗрд╕ рдлрд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПред рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдиреБрдХреВрд▓рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред # Database sizes (dbs (3 +Role +User +Sal) # 512 Prevalent objects (0 +Pos) # A:64 Tiny objects (1 +Item +Ord) # B:128 Small objects (2 +CuSu) # C:256 Normal objects (2 (+Role nm) (+User nm) (+Sal nm)) # D:256 Small indexes (4 (+CuSu nr plz tel mob)) # E:1024 Normal indexes (4 (+CuSu nm)) # F:1024 (4 (+CuSu ort)) # G:1024 (4 (+Item nr sup pr)) # H:1024 (4 (+Item nm)) # I:1024 (4 (+Ord nr dat cus)) # J:1024 (4 (+Pos itm)) ) # K:1024
рдХреЗ рдЙрдкрдпреЛрдЧ
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж ( рдкреНрд░рд╛рд░рдВрдн рдХрд░рдирд╛ рджреЗрдЦреЗрдВ ), рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред "рдбреЗрдЯрд╛" рдореЗрдиреВ ( рдиреЗрд╡рд┐рдЧреЗрд╢рди рджреЗрдЦреЗрдВ ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдЧреНрд░рд╛рд╣рдХреЛрдВ, рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ, рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдмрдирд╛ рдпрд╛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ "рд░рд┐рдкреЛрд░реНрдЯ" рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░рд▓ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВредрдЧреНрд░рд╛рд╣рдХ / рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛
"рдПрдкреНрд▓рд┐рдХреЗрд╢рди / cusu.l"рдХреНрд▓рд╛рдЗрдВрдЯ / рд╡рд┐рдХреНрд░реЗрддрд╛ рдЦреЛрдЬ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ ( choCuSu
"рдПрдкреНрд▓рд┐рдХреЗрд╢рди / gui.l" рдореЗрдВ) рдХрдИ рдЦреЛрдЬ рдорд╛рдирджрдВрдбреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╡реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЬрд╝рд┐рдк рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлреЛрди рдирдВрдмрд░реЛрдВ рдХреЗ рдЙрдкрд╕рд░реНрдЧ рдФрд░ рдЗрддрдиреЗ рдкрд░редрдореБрдЦреНрдп рд▓реЗрдЖрдЙрдЯ ( рдПрдбрд┐рдЯрд┐рдВрдЧ рджреЗрдЦреЗрдВ ) рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлреЙрд░реНрдо рдХреЛ рдЪрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЯреИрдм рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдлрд╝реЙрд░реНрдо рдХреЛ рдХрдИ рдЯреИрдм рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рдВрднрд╡рддрдГ GUI рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЪрд╛рд░ рдЯреИрдм рд╕рдВрднрд╡ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИрдВ, рдФрд░ рд╡реЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВредрдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЬрдм рдЯреИрдм рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдбреЗрдЯрд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ "рдЯреИрдм" рдмрдЯрди рдХреЛ рджреВрд╕рд░реЗ рдЯреИрдм рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджрдмрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЯреИрдм рдХреЛ HTML рд▓рд┐рдВрдХ ( рдмрдЯрди рдмрдирд╛рдо рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ ) рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ редрдирдП рдЧреНрд░рд╛рд╣рдХреЛрдВ рдпрд╛ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдЕрдЧрд▓рд╛ рдЙрдкрд▓рдмреНрдз рдирдВрдмрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдк рдПрдХ рднрд┐рдиреНрди рд╕рдВрдЦреНрдпрд╛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред "рдирд╛рдо" рдлрд╝реАрд▓реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИредрд╕рдВрдкрд░реНрдХ рдЯреИрдм рдореЗрдВ рдлрд╝реЛрди рдФрд░ рдлрд╝реИрдХреНрд╕ рдирдВрдмрд░ рд╕рд╣реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рд▓реЛрдХреЗрд▓ ( рдЯреЗрд▓реАрдлреЛрди рдирдВрдмрд░ рджреЗрдЦреЗрдВ ) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ редрдореЗрдореЛ рдЯреИрдм рдореЗрдВ рдПрдХ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рд╣реЛрддрд╛ рд╣реИред рдЖрдк рдкрд╛рда рдХреЗ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмреНрд▓реЙрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИредрдорд╛рд▓
"App / item.l"рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдПрдХ рдЖрд╡рд╢реНрдпрдХ "рд╡рд┐рд╡рд░рдг" рдлрд╝реАрд▓реНрдб рднреА рд╣реЛрддрд╛ рд╣реИредрдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "+" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЧреНрд░рд╛рд╣рдХ / рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдЦреЛрдЬ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдореЗрдВ "@" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╡рд╛рдВрдЫрд┐рдд рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдк рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдХреЗ рдирд╛рдо рдХреА рд╕рдЯреАрдХ рд╡рд░реНрддрдиреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕реАрдзреЗ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рднреА рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВредрдЦреЛрдЬ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдореЗрдВ, рдЖрдк рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрднрд╡ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдлрд┐рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдмреИрдХ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЦреЛрдЬ рд╡рд┐рдВрдбреЛ рдкрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯреЗрдВред "рдПрдбрд┐рдЯ" рдореЛрдб рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рд╕рдВрдкрд╛рджрди рдХреЗ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ )редрдЖрдк рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рд╕реНрдЯреЙрдХ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рд▓ рдХреА рдорд╛рддреНрд░рд╛ред рдЕрдЧрд▓рд╛ рдлрд╝реАрд▓реНрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рд╢рд┐ рдХреЗ рдмрд┐рдХрдиреЗ рдХреЗ рдмрд╛рдж рдмрдЪреЗ рд╣реБрдП рд╕рд╛рдорд╛рди рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдЙрдирдХреЗ рдкрд╛рд╕ рдСрд░реНрдбрд░ рдЖрдЗрдЯрдо рдореЗрдВ рд▓рд┐рдВрдХ рд╣реИрдВ)ред рдЗрд╕ рдорд╛рди рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рджрд╢рдорд▓рд╡ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд╕рд╛рде рдХреАрдорддреЗрдВ рджрд░реНрдЬ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рджрд╢рдорд▓рд╡ рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рдмрд╛рдж рджреЛ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛редрдореЗрдореЛ рдлрд╝реАрд▓реНрдб, рд╕рд╛рде рд╣реА рд╕рд╛рде рдХреНрд▓рд╛рдЗрдВрдЯ / рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмреНрд▓реЙрдм-рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИредрдЕрдВрдд рдореЗрдВ, рдЗрд╕ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ JPEG рдЗрдореЗрдЬ рдХреЛ рдПрдХ рдмреНрд▓реЙрдм рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдЪрдпрди рд╕рдВрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЪреБрдиреЗрдВ рдФрд░ "рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЫрд╡рд┐ рдкреГрд╖реНрда рдХреЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА, рдФрд░ "рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ" рдмрдЯрди "рд╣рдЯрд╛рдПрдВ" рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЫрд╡рд┐ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВредрдХреНрд░рдо
"App / ord.l"рдЖрджреЗрд╢ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рддрд╛рд░реАрдЦ рд╕реЗ рдкрд╣рдЪрд╛рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВредрд╕рдВрдЦреНрдпрд╛ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рддрдм рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рдСрд░реНрдбрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рдмрджрд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛редрдирдП рдмрдирд╛рдП рдЧрдП рдЖрджреЗрд╢ рдХреА рддрд╛рд░реАрдЦ рдЖрдЬ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддрд╛рд░реАрдЦ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рд▓реЛрдХреЗрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ YYYY-MM-DD (ISO), рдЬрд░реНрдорди рдореЗрдВ DD.MM.YYYY рдФрд░ рдЬрд╛рдкрд╛рдиреА рдореЗрдВ YYYY / MM / DD рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╕рдордп рдФрд░ рддрд╛рд░реАрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ , рдпрд╣ рдлрд╝реАрд▓реНрдб рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЗрдирдкреБрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рдорд╣реАрдиреЗ рдореЗрдВ рдкреВрд░реА рддрд╛рд░реАрдЦ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рди рджрд░реНрдЬ рдХрд░реЗрдВредрдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "+" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЧреНрд░рд╛рд╣рдХ / рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдЦреЛрдЬ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЖрдк рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдореЗрдВ "@" рдмрдЯрди рдХреЗ рд╕рд╛рде рд╡рд╛рдВрдЫрд┐рдд рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╛ рд╕реАрдзреЗ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдореЗрдВ рдирд╛рдо рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рдЬреИрд╕рд╛ рдХрд┐ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ редрдЕрдм рдСрд░реНрдбрд░ рдЖрдЗрдЯрдо рджрд░реНрдЬ рдХрд░реЗрдВ: "+" рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрддреНрдкрд╛рдж рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред "рдореВрд▓реНрдп" рдлрд╝реАрд▓реНрдб рдореЗрдВ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореВрд▓реНрдп рд╣реЛрдЧрд╛, рдЖрдк рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдорд╛рддреНрд░рд╛ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рдмрдЯрди рджрдмрд╛рдПрдВ (рдЖрдорддреМрд░ рдкрд░ "+" рдмрдЯрди рдЕрдЧрд▓реЗ рдЖрдЗрдЯрдо рдпрд╛ рд╕реНрдХреНрд░реЙрд▓ рдмрдЯрди рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдкрджреЛрдВ рдХреА рдХреБрд▓ рд▓рд╛рдЧрдд рдФрд░ рдкреВрд░реЗ рдЖрджреЗрд╢ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдлреЙрд░реНрдо рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░рд┐рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред"+" рдпрд╛ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ рдмрдЯрди рдХреЗ рдмрдЬрд╛рдп, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдк рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП "рдкреВрд░реНрдг" рдмрдЯрди рднреА рджрдмрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдмрдЯрди рджреВрд╕рд░реА рдмрд╛рд░ рджрдмрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЕрдм "рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ") рдпрджрд┐ рдЖрдк рдкрджреЛрдВ рдХреЛ рднрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВредрдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рдХреЗ рджрд╛рдИрдВ рдУрд░ "x" рдмрдЯрди рдЗрд╕ рдЖрдЗрдЯрдо рдХреЛ рдмрд┐рдирд╛ рдЕрдзрд┐рдХ рдкреБрд╖реНрдЯрд┐ рдХреЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рд╡рдзрд╛рдиреА рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП!"^" рдмрдЯрди рдЙрдЪреНрдЪ рд░реЗрдЦрд╛ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рд░реЗрдЦрд╛ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдмрдврд╝рд╛рдХрд░редрдкреАрдбреАрдПрдл-рдкреНрд░рд┐рдВрдЯ рдмрдЯрди рдЗрд╕ рдЖрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЙрдкрдпреБрдХреНрдд рджрд░реНрд╢рдХ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреАрдбреАрдПрдл рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдзрд┐ рдХрд╛ рд╕реНрд░реЛрдд "рдПрдкреНрд▓рд┐рдХреЗрд╢рди / lib.l" рдореЗрдВ рд╣реИред рдпрд╣ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ A4 рдкреГрд╖реНрда рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдкрджреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИредрд░рд┐рдкреЛрд░реНрдЯ
"рдРрдк / рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА.рдПрд▓ рдФрд░" рдРрдк / рд╕реЗрд▓реНрд╕.рдПрд▓ "рджреЛ рд░рд┐рдкреЛрд░реНрдЯ (" рдЗрдиреНрд╡реЗрдВрдЯрд░реА "рдФрд░" рд╕реЗрд▓реНрд╕ ") рдореЗрдВ рдХрдИ рдЦреЛрдЬ рдлрд╝реАрд▓реНрдб рдФрд░" рд╢реЛ "рдмрдЯрди рд╣реЛрддреЗ рд╣реИрдВредрдпрджрд┐ рдЦреЛрдЬ рдорд╛рдирджрдВрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ "рджрд┐рдЦрд╛рдПрдБ" рдмрдЯрди рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рднрд╛рдЧ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рдмрд╣реБрдд рд╕рдордп рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдбрд╝рд╛ рд╣реЛрдиреЗ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдПрдХ рдмрдбрд╝рд╛ рднрд╛рд░ рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИредрдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╕реАрдорд╛, рд╡рд┐рд╡рд░рдг рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ / рдпрд╛ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдЗрдиреНрд╡реЗрдВрдЯреНрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ, рдпрд╛ рдСрд░реНрдбрд░ рдФрд░ / рдпрд╛ рдПрдХ рдмрд┐рдХреНрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдПрдХ рддрд┐рдерд┐ рд╕реАрдорд╛ рддрдХ рд╕реАрдорд┐рдд рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рди рдЫреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдорд╛рдирджрдВрдб рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВредрдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ, "CSV" рд▓рд┐рдВрдХ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдлрд╝рд╛рдЗрд▓ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред