Найти - Пользователи
Полная версия: Гуи хелло верлд в функциональном стиле :)
Начало » GUI » Гуи хелло верлд в функциональном стиле :)
1
astoon
Я, конечно, понимаю, что это нафиг не нужно, но все-таки интересно:
например, как бы конструкцию вида
win = gtk.Window()
win.set_title('foo')
win.connect('destroy', gtk.main_quit)
win.show()
gtk.main()
записать с помощью таких вещей, как map(), lambda и т.д. ?
ради забавы :)
cleg
ы… я вижу один выход - написать это на Хаскелл. через монады :-)
в Пайтоне такой изврат сразу как-то и в голову не лезет…
astoon
:)
вчера в голову пришло и полночи заснуть не мог …
njlytoh
Отаке от получилось але чи не простіше процедурно?
import gtk
win=gtk.Window()
list=[
        (win,#з цим обєктом маніпуляції
                [       #список методів що слід виконати та параметрів що їм передати
                        ('set_title',['foo']),
                        ('connect',['destroy', gtk.main_quit]),
                        ('show',[]),
                ],
        ),
]
# І функційонально проходим по задачках котрі тра виконати :)
map(lambda (_obj,_todo): map( lambda (_method,_params): getattr(_obj,_method)(*_params),_todo),list)
gtk.main()
tabajara
njlytoh, то не функціональний, а збочено - функціональний стиль )))
cleg
tabajara
njlytoh, то не функціональний, а збочено - функціональний стиль )))
по моему извращенной идее - извращенное решение. кстати очень неплохое.

ЗЫ а кто-то возьмется реализовать на Python монады? :-)
ofigetitelno
:)
gtk нету, но есть wx…
type('', (__import__('wx').App,), dict(OnInit=lambda self:__import__('wx').Frame(None, -1, "Hello world!").Show(True)))(0).MainLoop()
tabajara
ofigetitelno
:)
gtk нету, но есть wx…
type('', (__import__('wx').App,), dict(OnInit=lambda self:__import__('wx').Frame(None, -1, "Hello world!").Show(True)))(0).MainLoop()
ОГО!!!
astoon
ofigetitelno
:)
gtk нету, но есть wx…
type('', (__import__('wx').App,), dict(OnInit=lambda self:__import__('wx').Frame(None, -1, "Hello world!").Show(True)))(0).MainLoop()
Почти Лисп …
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB