Как использовать реактивный банан с Gtk2Hs?

Я пытаюсь получить некоторый опыт работы с реактивным бананом, в соответствии с его веб-сайтом, он должен поддерживать GTK. Мне было интересно, есть ли какой-нибудь учебник/вводный материал о том, как это сделать?

Я прочитал здесь в SO, что есть проект jaek, но я больше ищу минимальный пример использования реактивного банана с gtk2hs (gtk3 от hackage), так как у меня нет опыта работы с FRP или реактивным бананом.

Кроме того, я много раз пытался заставить reactive-banana-wx работать на Windows/MinGW. Несмотря на то, что в конечном итоге мне удалось установить wxHaskell, были ошибки во время выполнения (https://stackoverflow.com/questions/23367950/wxc-segfault-in-wxhaskell). Думаю, я не смог бы заставить wxHaskell работать должным образом, если бы не понизил все до 2010 или более ранней версии, поскольку после этого не было никаких инструкций о том, как заставить wxHaskell работать в Windows, только вопросы.

Я попытался установить Gtk2Hs сегодня. Даже с gtk3 это было легко. Это заставляет меня задаться вопросом, есть ли хороший материал для начинающих по этому маршруту (например, реактивный банан + gtk2Hs).

Спасибо,


person tinlyx    schedule 30.04.2014    source источник
comment
Возможно, он уже битрот, и это может быть не лучший пример, но я использовал reactive-banana и gtk2hs для демонстрации FRP около года назад под названием Функционально-реактивная Солнечная система.   -  person James Curbo    schedule 30.04.2014
comment
Если вы хотите черпать вдохновение у jaek, начните с Jaek.UI.FrpHandlers , посмотрите, как события GTK связаны с такими функциями, как clickEvents', а затем перейдите к Jaek.UI.FrpTypes, где вы можете найти связующий код, используя newAddHandler и fromAddHandler (например, в event1). Он использует довольно старую версию реактивного банана, но ключевые вещи остаются в силе.   -  person duplode    schedule 30.04.2014
comment
Спасибо за подсказки. Я прочитаю ваши примеры позже, когда буду больше рассказывать о gtk. Честно говоря, я даже не так много знаю о программировании на gtk. У меня есть некоторый опыт программирования wx. Итак, существует ли такая вещь, как программирование с помощью реактивного банана, не беспокоясь о том, подключен ли он к wx или gtk? Или это совершенно другое, если вы используете wx и gtk (даже если кто-то когда-нибудь придумает реактивный-банан-gtk).   -  person tinlyx    schedule 30.04.2014
comment
Единственное, что будет отличаться, — это связующий код, необходимый для преобразования событий GTK/wx в реактивно-банановые. Когда у вас есть eClickOK :: Reactive.Banana.Event t (), вы можете подключить его к своей сети событий, не заботясь о том, пришло ли оно из GTK, wx или Threepenny и так далее. Таким образом, это можно сделать, пока связующий код хранится в отдельном автономном модуле.   -  person duplode    schedule 30.04.2014
comment
Спасибо, буду иметь в виду.   -  person tinlyx    schedule 30.04.2014
comment
Когда мне нужна была привязка к gtk, я использовал github.com/conklech/reactive-banana-gtk - опять же, не уверен, насколько это актуально.   -  person James Curbo    schedule 01.05.2014