如何在GHCi中插入反引号?

Mar*_*tin 8 haskell ghci winghci

我在Windows上尝试使用GHCi中的Haskell.在我正在阅读的教程中,函数名称包含在反引号中:x `mod` 7.但是,我不能在GHCi中输入字符.

反引号字符的ASCII值为096,但GHCI不允许Alt+ 数字插入任何字符.复制/粘贴也不起作用.我该怎么办?

Tox*_*ris 10

如果您的键盘没有它,我不知道如何向ghci发送反引号.但是这个小技术问题不应该阻止你尝试Haskell!

  • 你可以在没有反引号的情况下在Haskell中编程f a b而不是使用a `f` b.在你的例子中,mod x 7.

  • 您可以将键盘布局设置为us-american以进行编程.虽然它需要一些练习来找到与物理键盘上的错误标签的钥匙,它可以方便的[,],{}更多的访问,并在你的情况,有反引号的.

  • 您可以从剪贴板粘贴反引号.(从命令窗口的设置激活"快速编辑模式"和"粘贴模式",然后使用鼠标右键粘贴).

  • 也许在命令窗口周围使用包装有帮助吗?我有时使用Console2,有时M-x shell使用Emacs.

  • 也许WinGHCi有帮助吗?它至少支持复制和粘贴.

  • 请参阅ØrjanJohansen关于如何向ghci添加自定义键绑定的答案.

祝Haskell好运!


Ørj*_*sen 6

@Toxaris在他的回答中给出了一些建议,但在评论中他还提到了配置GHCi版本的readline(称为haskeline)的可能性.并且它允许自定义键绑定.所以我决定测试一下.

文档说要将自定义项放入~/.haskeline,这不是Windows路径,但它可能转换为.haskeline在任何目录System.Directory.getHomeDirectory返回.(vim也可以直接在Windows上编辑该路径,但之后我才意识到.)所以我将以下内容放入C:\Users\Ørjan\.haskeline:

bind: meta-' `
Run Code Online (Sandbox Code Playgroud)

现在我可以`通过按下进入GHCi alt-'!