问题标签 [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 投票
6 回答
8141 浏览

haskell - 使用 Haskell 模式在 Emacs 中自动完成 Haskell

我安装haskel-mode在emacs中。然后我写在我的 .emacs 中:

我必须在我的 conf 文件中添加什么 emacs 可以为 Haskell 自动完成?还是Haskell模式没有这种可能?

0 投票
3 回答
1879 浏览

haskell - Emacs 的 Haskell 缩进模式有什么异同?

通过仔细阅读文档,我了解到 Emacshaskell-mode提供了三种不同的、相互排斥的自动缩进方法。它们被称为haskell-indentationhaskell-indenthaskell-simple-indent。谁能解释这些方法的相似之处和不同之处?我不仅对单个功能感兴趣,而且对其中一个是否是事实上的标准或一两个不再维护感兴趣。

0 投票
2 回答
237 浏览

haskell - Emacs主提示中的函数名称自动完成 - haskell模式

我正在通过 emacs 编写一个 .hs (haskell) 文件并使用“加载文件”(Cc Cl) 加载它。

为了测试功能,我切换到主提示窗口 (Cx o),我需要在其中输入完整的功能名称。我确信必须有一种方法可以通过自动完成来获取函数名称,但我不知道该怎么做并且找不到?

请指导。

0 投票
1 回答
2576 浏览

haskell - 出现错误时如何解决问题:不在范围内

请注意,我正在使用 haskell 模式在 emacs 中练习 haskell 编程。

即使在使用终端时,我也会收到以下错误:

0 投票
1 回答
2554 浏览

haskell - 如何在 emacs - haskell 模式下运行 haskell 应用程序?

helloworld.hs 中的代码:

main = do
putStrLn "你好,你叫什么名字?"
name <- getLine
putStrLn ("Hey " ++ name ++ ", you rock!")

在终端中测试的应用程序:

optimight@optimight:~$ ghc --make helloworld
[1 of 1] 编译 Main (helloworld.hs, helloworld.o)
链接 helloworld ...
optimight@optimight:~$ ./helloworld
你好,你叫什么名字?
约翰
嘿约翰,你摇滚!

helloworld.hs 在 emacs 中加载 - haskell 主要模式:

GHCi,版本 7.4.1:http ://www.haskell.org/ghc/ :? 寻求帮助
加载包 ghc-prim ... 链接 ... 完成。
加载包 integer-gmp ... 链接 ... 完成。
正在加载包库...链接...完成。
Prelude> :load "/home/optimight/helloworld.hs"
[1 of 1] 编译 Main ( /home/optimight/helloworld.hs, 解释)
好的,加载的模块:Main。
*主要>

现在,如何(程序是什么?)在 emacs - haskell 模式环境中测试它?(我相信,当我使用 emacs - haskell mode 时,应该不需要切换到终端。)

0 投票
2 回答
211 浏览

haskell - 使用 putChar 后,haskell-mode 在同一行打印“* Main>”?

代码:

当我运行上述代码时,我得到了

但我期待

我的问题:为什么teh*Main来而不是teh然后*Main在另一行?

我正在使用带有haskell-mode的emacs23。

0 投票
1 回答
131 浏览

haskell - 如何 - 使用 emacs - haskell 模式将一个程序的输出传输到另一个(capslocker)的输入?

capslocker.hs 有以下代码:

haiku.txt 有以下内容:

在终端中,我能够做到:

还有这个:

如何在 emacs23 - haskell 模式下测试相同的(如在终端中所做的)?请指导。

请注意,在 emacs - haskell 模式下,我尝试了以下操作:

0 投票
2 回答
538 浏览

haskell - 当 Emacs 23 Haskell 编译(Cc Cl)进入无休止的过程时该怎么办?

很多时候,当我尝试编译一个.hs文件时,Emacs 23 Haskell 模式进入一个无休止的过程并且没有显示任何响应。唯一发生的事情是光标变成了一个圆圈,并且在圆圈内,点开始盘旋。

避免这种情况的最佳方法是什么?如果我陷入这种境地,我该如何脱身?目前,我重新启动计算机。请指导。

最近,它发生在以下代码中:

0 投票
2 回答
1006 浏览

haskell - /bin/sh: 1: ./respondPalindromes: not found - 这是什么意思?

我能够在respondPalindromes.hs文件中的终端中运行下面的代码,但无法在emacs中测试相同的代码。

响应回文= unlines 。map (\xs -> if isPalindrome xs then "palindrome" else "not a palindrome") 。isPalindrome
xs = xs == reverse xs
main = 交互的行

以下是终端详细信息:

optimight@optimight:~$ cat words.txt | runhaskell respondPalindromes.hs
不是回文
回文
回文回文
回文

下面是 Emacs haskell 模式的详细信息:

*Main> :load "/home/optimight/respondPalindromes.hs"
[1 of 1] 编译 Main (/home/optimight/respondPalindromes.hs, 解释)
好的,模块已加载:Main。
*主要> :! 猫话.txt | ./respondPalindromes.hs
/bin/sh: 1: ./respondPalindromes.hs: Permission denied
*Main> :! 猫话.txt | ./respondPalindromes
/bin/sh: 1: ./respondPalindromes: 未找到
*Main>

在迪特里希·埃普的回答之后编辑:

*Main> !: cat words.txt | runhaskell respondPalindromes.hs
:12:1: 解析输入错误'!:'

*Main> cat words.txt | runhaskell respondPalindromes.hs
:13:15:输入“|”解析错误
*主要>

0 投票
2 回答
888 浏览

haskell - Emacs : 在 Haskell-mode (haskell-mode-hook) 中重新定义命令

在haskell-mode的emacs中,我想更改命令

  • “Cx Cs”

  • “Cx Cs”后跟“Cc Cl”。

从:Haskell.org:Emacs/Keybindings 和简单用法中得到提示,我尝试将以下变体插入 .emacs 文件,但它们不起作用。任何关于我如何实现上述功能的建议都将受到欢迎!谢谢。

变体 1

变体 2



[编辑 1] @Tikhon Jelvis:这绝对是一个很好的学习练习!谢谢。使用您帖子中概述的方法,我将您的功能更改为:

最后一行以编程方式将光标切换到交互式窗口。谢谢你。

[EDIT2]其他变体包括:

和 :