问题标签 [haskeline]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
221 浏览

haskell - 如何让ghci支持^p上去?

我使用 Ctrl pa lot 而不是向上箭头在终端上向上。如何让ghci支持Ctrl p上去?

我从端口使用来自 ghc98 的 ghci。Mac OS X 10.5.8。

0 投票
2 回答
553 浏览

haskell - Haskell 最佳实践:在 Haskeline 中提前终止

我正在使用Haskeline包,我想在执行任何操作之前从命令行连续获取三个字符串,并且我想出了对我来说似乎是一个很好的解决方案。但我确信可能有更好的方法来做到这一点。我正在寻找使用 Haskeline 包时的最佳实践。请评估以下示例代码的优点:

如您所见,它完成了提前终止的任务,但看起来还是有点恶心。我正在考虑尝试将 notNothing 和 getInputLine 转换为一行,例如:

我认为这看起来并不那么糟糕。我认为这是非常清晰和简洁的(虽然它没有类型检查,所以我必须编写一个版本)。

然而,这是我想出的最好的,我的问题最终是:你将如何改进这段代码,使其更整洁、更易读?我什至走在正确的轨道上吗?

编辑:如果你的守卫不是 'a /= Nothing' 那么我刚刚发现的一个很好的辅助函数是:

因为那时你可以写(如luqui建议的那样):

这很酷。但是,如果您只匹配 Nothing 那么 TomMD 的答案会更好。

0 投票
0 回答
251 浏览

console - 库里的“readline”(或“haskline”)?

用Curry 编程语言编写程序的最实用方法是什么,该程序将具有带有不错的行编辑的控制台 UI?

实际上,我需要传递一个字符串作为用户输入的建议,然后让用户在控制台中编辑它,并接收他编辑的变体,处理它(写到进程的当前状态),然后循环。

我喜欢类似 readline/haskline 的编辑。(顺便说一句, haskline在其最新版本(0.6.4.0)中具有我想要的 API:读取带有建议初始值的行—— getInputLineWithInitial

此函数的行为方式与 完全相同getInputLine,只是它预先填充了输入区域。驻留在输入区域中的文本以带有两个字符串的 2 元组形式给出。元组左侧的字符串是光标左侧的字符串,右侧的字符串是光标右侧的字符串。

)

如何以最实用的方式获得 Curry 程序所需的功能(我的意思是,我不想在 Curry 中为控制台编辑操作编写新代码,而是可能使用库、包装器或 FFI) ?

0 投票
1 回答
1997 浏览

haskell - Haskell(haskell)单词补全

Haskeline 使得获取文件名制表符补全功能变得非常容易:

它还提供了诸如 completeWord 和 completeQuotedWord 之类的功能,它们应该能够以与使用 completeFilename 相同的方式来实现上述功能。
(换句话说,基于单词列表(例如函数名称)而不是基于文件夹的内容来完成制表符)

任何人都可以提供一个工作示例 - 或工作代码 - 吗?

来自其他包(如 HCL)的功能建议也很有帮助。

0 投票
1 回答
1315 浏览

haskell - cabal-install-0.10.2 在构建阶段失败

我试图安装 haskeline,这是我第一次使用 cabal 安装,这就是我得到的。我应该怎么办?

我的规格(如果您需要更多,请告诉我):

在 Mac OS X 10.5.8 上

0 投票
1 回答
377 浏览

haskell - 从 haskeline 中调用网络 IO

我有一个现有的程序,它接受命令行参数(用户名、密码、日期),然后使用该Network.HTTP.Conduit库将 xml 消息发布到服务器。然后我解析结果,做一些工作并使用 blaze-html 写入文件。

这一切都像魅力一样。但是,我想我会使用haskeline这样密码不可见。我可以创建一个命令行程序来获取用户提供的值并将它们打印出来,但是如果我调用使用管道的函数,它永远不会返回。

这是有问题的代码:

函数 getWMClients 函数是:

当我运行程序时,它会挂在“查询 WM ...”处,我认为 http-conduit 从未真正运行过。关于如何使这项工作的任何提示?

提前致谢, 尼尔

0 投票
1 回答
149 浏览

haskell - 更新 haskeline 中的输出文本

Haskeline 提供函数outputStroutputStrLn,输出到stdout,但是有没有办法更新已经输出的文本?例如,我在考虑当安装程序显示当前安装百分比时——百分比数字更新。

我需要使用curses绑定吗?

0 投票
0 回答
105 浏览

multithreading - 来自单独线程的 Haskeline

我正在编写一个 OpenGL 游戏,并且即将开始编写类似 Quake 的控制台的代码(例如 Quake 2/Counter-Strike,您可以在其中按下波浪号 (~) 并下拉控制台界面)。我已经将 Haskeline 库用于基于纯文本的控制台应用程序,并希望将其合并到我的 OpenGL 应用程序中,但不知道如何去做。

例如,getInputLine当 Haskeline REPL 循环在另一个线程中时,我将如何使用该函数?我猜我必须使用 forkIO然后使用文件描述符来模拟 UNIX 风格的管道来实现这一点。我必须编写一个使用 GLFW 接受键盘输入的桥接函数,然后将其传递给 Haskeline,让 Haskeline 对它认为的 STDOUT 施展魔法,然后捕获它,然后通过 OpenGL 将其显示在屏幕上来电。我是在正确的轨道上,还是这种方法不是最明智的方法?

0 投票
0 回答
1253 浏览

haskell - 如何清理 ghci 命令历史记录?

我读过一个类似的问题,即 GHCI 是在 haskeline lib 上编写的,但我必须承认这对我没有足够的帮助。

我试过了

并调用

但我不知道要参考当前的 GHCI 历史。

我的问题是如何清空我的 GHCI 历史记录?

0 投票
1 回答
625 浏览

haskell - 在 Haskeline 中的 InputT monad 中执行简单的 IO,而不必求助于 unsafePerformIO

鉴于下面的概念验证代码,我希望能够以某种方式执行我的foo函数,能够输出字符串,并且有可能在monad-transformerPaul!中获取其返回值,而无需在.InputTunsafePerformIOrunExceptT

我在这里遗漏了一些明显的东西吗?