26

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

Я только начинаю изучать мир функционально-реактивного программирования на 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..

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

  • Error: User Rate Limit Exceeded

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

    от
  • обновление: переключение в реактивном банане с версии 0.7.0.0

    от
  • @AndrewC Это фактически ссылка на «желе из арахисового масла». видео. Анимации - хороший пример для объяснения сути FRP, и я подумал, что танцующий банан - лучший пример анимации для этой цели.

    от Heinrich Apfelmus
  • @benw: я считаю, что "банан" часть - ссылка на статью с одним из самых забавных названий, которые я знаю:Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire.

    от hammar
  • @HeinrichApfelmus Интригующий - какие причины?

    от AndrewC
  • @hammar: Ха-ха, хорошо! На самом деле, я выбрал название «банан» по разным причинам, но мне нравится одно упоминание.

    от Heinrich Apfelmus
  • & Quot; graprefuit & Quot; и "реактивный банан"? Есть ли какая-то особая связь между фруктами и фруктами?

    от ben w
  • 18

    Если вы просто хотите использовать обычный FRP и оставаться ближе к ин

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

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

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

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

  • 12

    Я сам экспериментировал с FRP

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

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