Вопрос по frp, haskell, reactive-banana – Какой пакет FRP выбрать? [закрыто]

26

Я только начинаю изучать мир функционально-реактивного программирования на Haskell, и я хотел бы поэкспериментировать с программированием с графическим интерфейсом (с помощью gtk, из-за существенной привязки) в условиях реакции.

Теперь я немного посмотрел на Grapefruit, Reactive-Banana и Buster, и я хотел бы получить какое-либо свидетельство радости / ужаса от использования того или иного пакета.

Все, что у меня есть, это предварительные мнения:

I don't mind doing some of the binding of the FRP package to gtk myself, as I have an ambivalet feeling about the abstracted backend idea (that Grapefruit has)..

While I find type theory interesting, I also value simple encodings for actual programs, which seems to put grapfruit-records a bit off..

То есть, если, конечно, некоторые из вас не убеждают меня думать иначе :-)

@hammar: Ха-ха, хорошо! На самом деле, я выбрал название «банан» по разным причинам, но мне нравится одно упоминание. Heinrich Apfelmus
& Quot; graprefuit & Quot; и "реактивный банан"? Есть ли какая-то особая связь между фруктами и фруктами? ben w
@HeinrichApfelmus Интригующий - какие причины? AndrewC
@benw: я считаю, что "банан" часть - ссылка на статью с одним из самых забавных названий, которые я знаю:Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire. hammar
@AndrewC Это фактически ссылка на «желе из арахисового масла». видео. Анимации - хороший пример для объяснения сути FRP, и я подумал, что танцующий банан - лучший пример анимации для этой цели. Heinrich Apfelmus

Ваш Ответ

2   ответа
12

и до сих пор единственный, кто работал для меня, это Reactive-Banana. Я никогда не изучал Грейпфрут или большинство других, потому что они устарели и, похоже, их вообще не обновляли и не поддерживали. Я кратко посмотрел на netwire, но, честно говоря, вся теория стрел в нем оттолкнула меня, и у меня было много проблем, когда я пытался понять, как делать даже простые вещи.

В отличие от этого, мне удалось получить довольно хороший набор привязок к SDL, написанному на Reactive-Banana, всего за несколько икок. Еще одна вещь в пользу Reactive-Banana заключается в том, что Heinreich очень активен в сообществе и часто дает полезные ответы, когда вы сталкиваетесь с проблемами. Просто просмотрите различные вопросы о реактивном банане, и вы увидите, что он ответил на довольно многие из них, и он обычно очень активен в обсуждениях FRP в списках рассылки Haskell.

Error: User Rate Limit Exceeded
18

фраструктуре графического интерфейса пользователя, а не использовать «готовый» абстракция над ним, реактивный банан является наиболее жизнеспособным вариантом, на мой взгляд. Он явно ориентирован на привязку к существующим платформам и предназначен для «реального мира». использовать (не делать ничего слишком экспериментально, семантически, что может вызвать проблемы), и так далее.

Вы можете взглянуть нареактивно-банан-WX чтобы увидеть, как привязать основанную на событиях структуру к реактивному банану. Это очень просто; Однажды я написал быстрое связывание с Gtk2H (к сожалению, потерял код), и файл не превысил 50 строк. Это была почти прямая транслитерация кода реактивного банана-WX.

Я бы не рекомендовал использовать Buster по той простой причине, чтоне обновлялся с 2009 годаи не опирается на GHC 7.

Другие "ориентированные на производство" FRP рамки являютсянатрий (похож на реактивный банан, но он имеетдинамическое переключение событий (которыйскоро прибудет в реактив-банан, но еще не вошло) и понятие "разделов" для параллелизма; однако он только что вышел и еще не видел усыновления) иnetwire (Стрелка FRP, существо, совершенно отличное от реактивного - банан и натрий).

(Однако Генрих Апфельмус все еще (2013.06.20)working on сборка мусора при динамическом переключении событий, поэтому используйте с осторожностью в данный момент.)
обновление: переключение в реактивном банане с версии 0.7.0.0

Похожие вопросы