- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Emacs 中使用 sml 模式,我已经能够使用 C-c C-b
将我的缓冲区内容直接发送到劣质 SML 进程。 .现在我只想用 Haskell 做同样的事情。 Haskell-mode 似乎不支持这一点,所以我想知道:用 Emacs 和 Haskell 解决这个问题的正确方法是什么?
在学习 SML 时,我一直在使用 C-c C-b
几乎不间断地在我进行时轻松评估我的程序,立即看到分配值等的结果。但是如果我使用 C-c C-l
在包含两行的已保存文件上的 haskell 模式下,let foo = "foo"
和 let bar = "bar"
- 我得到 "parse error (possibly incorrect indentation)"
最佳答案
我认为您犯了一个常见的新手错误,混淆了您可以在 ghci 的 repl 中编写的内容以及您在 haskell 源文件中编写的内容。
所有 sml 解释器都以这样一种方式制作,即您可以将任何顶级声明写入 repl,或者换句话说:您可以在 sml 文件中写入的任何内容,您都可以写入 sml 解释器。因此你可以写val foo = "bar"
进入文件并使用C-c C-b
加载文件,您可以输入 val foo = "bar"
进入口译员。
另一方面,由于 haskell 的工作方式,你可以写成 let foo = 42
进入 ghci,但它不是有效的顶级声明,因此它不能在 haskell 源文件中(由它自己)。另一方面,您可以拥有 id n = n
在 haskell 源文件中并使用 C-c C-l
加载文件,但是你不能将它直接写入 ghci(你会得到一个错误::1:6: parse error on input '=')。这样做的原因是 ghci 中的 repl 在 IO monad 中运行,因此您在 ghci 中写入的任何内容都必须使用 do 表示法。我只能推荐你阅读Interactive evaluation at the prompt来自使用 GHCi 用户指南。C-c C-b
在 sml 模式下与 C-c C-l
完全相同在 haskell 模式下,至少在概念上是这样。我对haskell-mode的内部了解不多,但在sml-mode C-c C-b
在解释器中执行一些 sml 代码,通常是 use(...)
功能。在 haskell 模式下,它似乎只是执行 :load "..."
ghci 命令
关于haskell - 通过 Emacs 评估 ghci 中的缓冲区或拥抱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7836634/
在 GHCi 中,以下代码可以正常工作: f1 :: Float f1 = f2 -- f2 :: Float f2 = 1/1 但是在 Hugs 中,我得到了一个类型错误——它想成为一个 Doubl
拥抱似乎有几个不抱的问题!!在部分应用程序中。 虽然这在 GHCi 中运行良好: ([[0]]!!0!!)0 Hugs 报告 ) 的语法错误。 . 这是拥抱中的错误吗? 为第二个列表索引运算符添加一个
我有一个输入: [ 8 `div` 2 + 1 .. ] !! 2 : [ 1 .. 3 ] 输出为: [7,1,2,3] 但是.. Haskell首先计算什么? 我不知道优先级,哪七个是哪里来的
初识 .NET 2016 .NET 2016 概览 .NET 2016 作为 .NET 技术最新发展,如下图所示,它主要包含三大块: 最左边代表的是 .NET Framework 4.6,WP
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
我是一名优秀的程序员,十分优秀!