Haskell`ncurses`库

时间:2013-03-02 15:15:41

标签: haskell ncurses

我想在我的Haskell程序中使用基于文本的UI。我找到了一些ncurses库的绑定(另见hscurses or ncurses, which one to use?)。 hscursesnanocurses包只是C库周围的简单包装,而vty没有很好的记录,有点难看(例如混合snake_case和CamelCase)。

Hackage上的ncurses库看起来更漂亮,并且提供了非常适合Haskell的API。问题是它似乎没有实现一些关键功能,如调整大小或刷新窗口。

所以我的问题是:

  • 还有其他任何Haskell文本UI库,无论是基于ncurses还是不是,我都错过了?
  • 如果没有人,是否可以将ncurses Haskell库扩展到至少支持窗口刷新和调整大小? (这可能应该与项目所有者协商,但我需要快速解决方案)

修改

我最终使用nscurses没有窗口(和面板)来避免刷新它们的麻烦。输出到窗口的右下角时出现问题(Python's ncurses binding报告了一个非常类似的问题)。我没有写那里解决了它:)。

3 个答案:

答案 0 :(得分:9)

你看过vty-ui了吗?它有一个很好的用户手册,有很多例子。我相信它本质上是vty的包装。

答案 1 :(得分:3)

我成功地使用了nanoncurses和hscurses,我的hmp3应用程序有binding,这是nanocurses的基础。

无论您想要什么样的高级API。 hscurses至少有一个盒子抽象。

你可以和hscurses一起去。

答案 2 :(得分:2)

haskell中基于文本的用户界面还有另一个不错的选择;

Brick是由jtdaugherty编写的,他是开发vty-ui的人,现在已经弃用了。

API是Declarative,更适合呈现像Haskell这样的语言。 Documentation也很棒而且完整。