به صورت معمول زبان لسپ هیچ اینترفیس گرافیکی در اختیار کاربر نمی گذارد و اکثرا تمام تست ها در محیط کامند اجرا می شود.
ولی اگر از نرم افزار NewLisp استفاده کنید شما قادر خواهید بود برنامه خود را همانند دیگر برنامه های دسکتاپ نوشته و اجرا کنید.
من در اینجا قصد آموزش لیسپ را ندارم و فقط قصدم نمایش یک مثال برای کار کردن با لیسپ در محیط گرافیکی است.
1 - برنامه NewLisp را نصب کنید.
2-یک تب جدید باز کنید و کدهای زیر را در آن کپی کنید.
#!/usr/local/bin/newlisp
;;;; initialization
(set-locale "C")
(load (append (env "NEWLISPDIR") "/guiserver.lsp"))
(gs:init)
;;;; describe the GUI
(gs:frame 'WidgetsDemo 200 40 640 640 "Widgets Demo")
(gs:set-grid-layout 'WidgetsDemo 5 1 10 1)
;; the monitor area
(gs:text-area 'MonitorArea 'action-handler)
(gs:set-editable 'MonitorArea nil)
(gs:set-background 'MonitorArea 0.5 0.5 0.5)
(gs:set-font 'MonitorArea "Monospaced" 12 "plain")
(gs:set-foreground 'MonitorArea 1 1 0.0)
;; the button panel
(gs:panel 'ButtonPanel)
(gs:set-flow-layout 'ButtonPanel "left" 10 10)
(gs:set-titled-border 'ButtonPanel "input")
(gs:button 'TheButton 'button-handler "button")
(gs:text-field 'TheTextField 'textfield-handler 10)
(gs:add-to 'ButtonPanel 'TheButton 'TheTextField)
(gs:panel 'output)
(gs:set-flow-layout 'output "left" 10 10)
(gs:set-titled-border 'output "output")
(gs:text-area 'TheTextArea 'textarea-handler 160 80)
(gs:set-editable 'TheTextArea nil)
(gs:add-to 'output 'TheTextArea)
;; add all panels to the grid laount in the main frame
(gs:add-to 'WidgetsDemo 'MonitorArea 'ButtonPanel 'output)
(gs:set-visible 'WidgetsDemo true)
(define (button-handler)
(gs:get-text 'TheTextField 'gettextcallback-handler)
)
(define (gettextcallback-handler id text)
(if text
(begin
(set 'msg (my-func (base64-dec text)))
(gs:append-text 'TheTextArea msg)
(gs:append-text 'TheTextArea "\n"))
)
)
(define (my-func arr)
(set 'ee (string "(+ " arr ")"))
(set 'dq (eval-string ee))
(string dq)
)
;;;; listen for incoming action requests and dispatch
(gs:listen)
;; eof
lisp2.png
3-برنامه را اجرا کنید.
lisp.png
تبریک می گویم شما اولین برنامه خود را در زبان NewLisp نوشتید.
درقسمت ورودی به تعداد دلخواه عددهای خود را وارد کنید.(با اسپیس از هم جدا شوند)
در قسمت خروجی حاصل جمع آنها را مشاهده خواهید کرد.
4-برنامه را در محل دلخواه با نام mylisp ذخیره کنید.
اکنون برای اجرای دوباره آن فقط کافیست در محیط کامند به محل ذخیره خود رفته و دستور زیر را وارد کنید:
newlisp mylisp.lsp