问题标签 [haskell-mode]

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 回答
280 浏览

haskell - 总结排列列表的距离(Haskell)

我有一个城镇列表和一个函数,它给出了两个城镇之间的距离。例如:

现在我想做一个函数,可以计算所有城镇之间随机游览的全长。例如:

我希望你知道我的意思。我不确定如何将该dist!功能集成到新功能中。

我的第二个问题是我想计算哪个城市与第二个城市的距离最短。为了解决这个问题,我想使用greedy下面的函数:

但我不知道如何将它翻译成haskell ...

感谢您的思考

0 投票
1 回答
1783 浏览

haskell - haskellmode-vim 死了吗?

我刚刚禁用haskellmode-vim了我的插件配置。基本上这是出于三个原因:

  1. 我更喜欢neocomplcache我的自动完成需求。
  2. 显然它自 2010 年以来没有更新。
  3. 好像不兼容cabal

我希望有人跳入坑并指出我只是错误地配置了整个东西(就像我在自述文件中配置了最基本的东西一样)。要提出这个问题:

是否可以设置haskellmode,这样......

  • ...它从阴谋集团获得其配置?
  • ...它没有设置'completefunc',所以neocomplcache 仍然有效?
0 投票
1 回答
334 浏览

haskell - Haskell 风格注释的 ELisp 语法表注释

我正在尝试使用 ELisp Syntax-Table-Comments 设置 Haskell 样式的注释,但我不太明白。

在 Haskell 中,有 2 种基本类型的注释

--表示以\n

{-表示以 结尾的多行注释-}需要注意的是,这些可以嵌套

多行注释可以这样完成:

单行注释可以这样完成:

根据文档,我可以使用b. 但是,b适用于序列的第二个字符,在这两种情况下都是-. 因此,当我尝试使用替代方法将这些组合起来时,就不可能进行多行和单行注释。

我已经看到这样做了,所以我知道这是可能的。但是,我不知道该怎么做。任何帮助表示赞赏。

0 投票
1 回答
310 浏览

haskell - Cabals Paths_*-Module 和 emacs 的 haskell-mode

给定一个 cabal 项目,它有一个数据文件和一个想要读取它的函数。

f项目中的此功能p大致执行以下操作:

在此文件中,emacs haskell-mode 将导入标记为错误。永远不会标记该文件中可能存在的所有其他错误或警告。

有没有办法让 haskell-mode 知道模块Paths_p

0 投票
1 回答
185 浏览

emacs - haskell-mode 中的 font-lock-mode 似乎破坏了 emacs 中单个空格的宽度

我发现font-lock-mode无论我使用什么等宽字体,单个空格的宽度都有问题。

以下是一些截图:

  • 使用DejaVu Sans Mono

    font-lock-mode上:

    djv1

    font-lock-mode离开:

    djv2

  • 使用Luculent

    font-lock-mode上:

    lu1

    font-lock-mode离开:

    lu2

我的 emacs 初始化文件中的相关(可能)行:

编辑:感谢@Boojum 的帮助,我做C-u C-x =了 3 种不同风格的角色。 这就是结果。我想问题是SPC没有“面子”属性。

另外,我也尝试切换到其他主要模式,发现这个问题只发生在haskell-mode.

0 投票
3 回答
2469 浏览

haskell - Haskell 模式不适用于我的项目,找不到模块

这是我的场景:

我正在开发一个具有以下目录/模块的项目:

BarModule1.hs看起来像这样:

我还有一个.cabal指定src为的文件hs-source-dirs,当然这两个模块都在其中列出。

当我BarModule1.hs在 Emacs 中的文件中并且我这样做C-c C-l时,它说:

我也想使用hlintwith flymake-haskell-multi-load,如果我用 激活该模式M-x flymake-haskell-multi-loadhlint将始终显示它找不到模块的错误Foo.FooModule1,因为它不知道.cabal我在其中指定的文件hs-source-dirs: src

所以我的问题是:我怎样才能haskell-modeflymake/hlint模块树,以便它找到所有模块?

或者,我怎样才能让他们知道我的.cabal文件中指定的模块?

0 投票
2 回答
186 浏览

haskell - Haskell 模式报告“找不到提示”---可能是什么问题?

当我运行C-c C-lhaskell-mode 报告“找不到提示”。

我的问题如下:

  • 我将如何调试这个问题?“找不到提示”本身可能信息太少,那么我该如何寻找潜在的问题呢?

  • 什么样的问题可能导致此错误?

0 投票
2 回答
2157 浏览

emacs - 某些快捷方式不适用于以 Cc 开头的 emacs

在 Haskell 模式中,快捷方式C-c C-=被定义为做某事

尝试这个快捷方式,我意识到 emacs 无法识别该快捷方式C-c C-=

事实上,当我在 emacs 上尝试快捷方式时,C-c =虽然我按下了C- C-=. 我对其他一些符号也有同样的问题,比如“。” 或者 '§'。但捷径喜欢C-c C-lC-c C-c工作。

我尝试删除我的.emacs但我有同样的问题。

一个朋友和我有同样的问题。

我们都在 ArchLinux(64 位)上,我们在控制台中使用 emacs。键盘是一个azerty。

问题来自emacs?拱Linux?

0 投票
1 回答
336 浏览

emacs - 无法重新绑定 Cx Cs 以使用 haskell 模式特定功能,因为它的定义是无效的

为了在 haskell 模式下执行特定的保存操作,此页面建议重新C-x C-s绑定要使用的键绑定,haskell-mode-save-buffer而不仅仅是标准save-buffer命令:

(define-key haskell-mode-map (kbd "Cx Cs") 'haskell-mode-save-buffer)

预期的行为是能够将特定于 haskell 模式的挂钩添加到标准保存命令。所以我把它添加到我的~/.emacs文件中。

但是当我在haskell-mode中使用这个键绑定时,会发生这个错误:

Symbol的函数定义为void:haskell-mode-save-buffer

我还在文件中添加了这一行.emacs

(add-hook 'haskell-mode-hook 'haskell-mode-save-buffer)

但这无济于事。我想它似乎没有做任何事情,因为haskell-mode'save-buffers 定义是void,所以我想将它添加到 stuff 将无济于事。我也尝试添加该行

(define-key haskell-mode-map (kbd "Cx Cs") 'haskell-mode-save-buffer)

haskell-mode.el文件本身(安装目录中的文件(ELPA)),但我真的不知道这是否有帮助。我还没到可以调试那种东西的地步。

我试图找出这个函数是否是在haskell-mode中定义的。使用 TAB运行M-x describe-variable "haskell-mode-"表明它不存在于这组变量中。编辑:正如评论中所指出的,我应该使用它describe-function来尝试找到这个函数。使用 TAB运行M-x describe-function "haskell-mode-"显示haskell-mode-save-buffer在此处找不到。不过,有趣的是,这里列出了两个似乎暗示能够提供预期功能的功能:

haskell-mode-before-save-handler

[...]

保存处理程序后的haskell模式

haskell-mode.el文件中搜索“haskell-mode-save-buffer”不会产生任何结果。

我是否有什么问题,我如何重新绑定密钥(没有明确提到我应该将行添加到.emacs,无论如何,这只是我的一个假设),或者是这种添加钩子的方式到不再在haskell-mode中使用的save命令?

0 投票
2 回答
220 浏览

haskell - 你可以在模式挂钩中添加一个函数来调整模式打开的窗口的大小吗?

在 haskell 模式下,C-c C-b打开一个 GHC REPL 进行测试等。然而,它总是在一个与我正在编码的那个大小相等的框架中打开。有一个模式挂钩,inferior-haskell-mode-hook但是我尝试添加一些类似的东西

导致无效或错误消息Cannot resize the root window of a frame。任何建议将不胜感激。

编辑:haskell-mode 的最新更新完全破坏了 REPL 功能,所以这个问题没有实际意义,或者至少在我修复它之前我无法测试答案......