问题标签 [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.
haskell - 具有 Haskeline 自动完成功能的模棱两可的类型变量
我正在尝试使用Haskeline实现自动完成功能:
但我对这个 GHC 错误有点失望:
我为每个函数设置了类型,但没有解决问题。
您知道这种类型的歧义从何而来以及如何消除它?
haskell - 不安全的 IO 或:Haskline 和目录
免责声明:我对 Haskell 有点陌生。
我正在写一个解释器,或者,在这种情况下,一个 REPL。为此,我使用了 haskeline,这对 REPL 来说很好。它具有将命令行历史记录存储在文件中的能力,这也很好。
但是,我在使用它时遇到的一个问题是它似乎没有将“~”扩展到主目录,这意味着我必须手动检索主目录。
我可以这样做(目前正在这样做):
但这使用unsafePerformIO
,这让我畏缩。您知道不涉及重写整个函数的良好且干净的解决方法吗?这可能是haskeline
我不知道的功能,也可能是我没有看到的功能。
告诉我没有办法重写和重新思考这一切也很好。
编辑:
我知道unsafePerformIO
这很糟糕,这就是为什么它让我畏缩。如果你是 Haskell 的新手并且现在正在阅读这个问题:假装它不存在。
haskell - How to write ~/.haskeline so that ghci or haskeline can behave properly on `home` and `end`
My question is how to make my ghci
react properly on my home
and end
press.
I learned that ghci
use haskeline
to react to user input, and haskeline
's behavior is partially defined in ~/.haskeline
to some extent.
I have being suffering from the lack of support for end
key and home
key of ghci
for a long time. So I tried to define my own ~/.haskeline
file.
Firstly:
Both behave as when I press a
then the cursor to the most left and similarly to others.
Secondly:
It shows that my ghci
seems to ignore my home
and end
press absolutely.
So how could I send home
and end
key to ghci
and haskline
?
haskell - 使用 mtl 的 MonadReader 和 haskeline 有类型错误
我想InputT (ReaderT Int IO) a
与MonadReader Int
.
我写下面的代码在 InputT 上创建实例 MonadReader
但我得到这种类型的错误。
我该如何解决这个错误。
完整的源代码在这里
haskell - 带 IO 字符串的 readInputLine
我想读取带有自定义提示的输入字符串,但是提示字符串来自不纯的上下文,因此我不能readInputLine
按原样使用。我试图根据这个答案实现一个功能
但我得到一个错误
更新:根据@bheklilr 的回答让它工作
haskell - 使用来自 Haskeline 的 getInputLine 的输入
我有代码
其中 process 有类型定义
但是我得到了错误:
我想知道是否有人可以解释我做错了什么。我只想从 getInputLine 获取原始输入来做其他事情。
谢谢
haskell - Haskeline 历史顺序错误
我正在使用 Haskeline 为程序制作 CLI 界面。
我使用 Haskeline 的基本配置将描边的命令保存在文件中。
当我在命令行界面时,我可以使用上箭头来调用前面的命令。在与 BASH 或 GHCi 相同的行为下,事情运行良好。
该文件已正确写入并以正确的顺序包含命令(从第一个到最后一个)
重新启动我的程序后,我使用向上箭头调用最后一个命令,我得到....第一个!每次按上箭头时,我都会得到下一个命令(而不是上一个)。
当我重新启动我的应用程序时,我很惊讶有相反的行为。
是否可以反转命令在文件中读取的顺序?
重新启动 Haskeline CLI 程序后是否可以按正确的顺序调用命令?
haskell - 将 ansi-wl-pprint 与 haskeline 一起使用
如何在不失去 Windows 支持的情况下将ansi-wl-pprint与haskeline一起使用?
ansi-wl-pprint 有两种输出 a 的方法SimpleDoc
:
但是,文档警告说displayS
在 Windows 上不起作用(cmd.exe
不实现 ANSI 转义序列?)。
displayIO
不使用 haskeline 的打印功能,但是:
我现在能看到的最接近解决方案的是:
但是,如果displayS
在 Windows 上不起作用,我宁愿不使用它。
haskell - Haskell:GHCi 将 Ctrl-Y 视为 Ctrl-Z
根据 haskeline文档,键入CTRL+Y应该会从 kill-ring 中弹出最近的条目(例如,我刚刚通过CTRL+删除的行U)。相反,我发现它暂停了 REPL,就好像我输入了CTRL+一样Z。
作为一种笨拙的解决方法,我发现键入CTRL+ V CTRL+Y从杀戮环中弹出作为普通的CTRL+Y应该是这样做的。
这是一个已知的错误,还是其他原因?我可以修复它吗?我正在运行 GHC 版本 8.0.2。
不确定这是否重要,但我正在通过堆栈(例如stack ghci
)运行 GHCi,并且我正在酿造已安装的堆栈(macOS)。