Библиотека Haskell `ncurses`

Я хотел бы использовать текстовый интерфейс в моей программе Haskell. Я нашел некоторые привязки для библиотеки ncurses (см. Также hscurses или ncurses, какой из них использовать?). Пакеты hscurses и nanocurses - это просто обертки вокруг библиотеки C, а vty не очень хорошо документированы и немного уродливы (например, смешение snake_case и CamelCase).

Библиотека ncurses в Hackage выглядит намного красивее и предоставляет API, который прекрасно подходит для Haskell. Проблема заключается в том, что он, похоже, не реализует некоторые важные функции, такие как изменение размера или обновление окон.

Итак, мой вопрос:

  • Есть ли какая-либо другая библиотека пользовательского интерфейса Haskell, основанная на ncurses или нет, которую я пропустил?
  • Если нет никого, можно ли расширить библиотеку ncurses Haskell, чтобы как минимум поддерживать обновление и изменение размера окна? (с этим, вероятно, следует обращаться к владельцу проекта, но мне нужно решение быстро)

EDIT:

Наконец, я использовал nscurses без окон (и панелей), чтобы избежать проблем с их обновлением. У меня были проблемы с выходом в нижний правый угол окна (очень похожая проблема была отмечена для Python ncurses binding). Я решил это, не написав там:).

Ответы

Ответ 1

Вы посмотрели vty-ui? У этого есть очень хорошее руководство пользователя с большим количеством примеров. Я считаю, что это по существу обертка вокруг vty.

Ответ 2

Я успешно использовал nanoncurses и hscurses, у моего приложения hmp3 есть привязка которая была основой для нанокурсов.

Независимо от того, что вам, вероятно, понадобится хороший API высокого уровня. По крайней мере, у hscurses есть абстракция коробки.

У вас все будет хорошо с hscurses.

Ответ 3

В haskell есть еще один хороший выбор для пользовательских интерфейсов на основе текста;

Brick написан jtdaugherty, тем же человеком, который разработал vty-ui, который теперь устарел.

API Declarative, который лучше подходит для представления языка, такого как Haskell. также была Документация.