问题标签 [haskell-platform]

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

haskell - 在 Windows XP 上的 Haskell 平台 2012.2.0.0 上安装 yesod 时出错

我相信尝试使用“cabal install yesod-platform”安装 yesod,但安装因以下错误而中止:

任何想法如何解决这个问题?

0 投票
2 回答
390 浏览

haskell - Yesod:与 Lucius 合作的奇怪错误

嗨,我对 yesod 很陌生,我正在尝试遵循本教程,但是当我尝试开发应用程序时,它给了我这个错误:

构建 ministeam-0.0.0...

处理程序/AuthTut.hs:81:0:错误:无效的预处理指令#message

cabal-dev:用户错误(警告:无法确定 /home/nock/.cabal/bin/fake-ghc-cabal-dev 的版本:“== GHC 参数:开始 ==\n--numeric-version\n= = GHC 参数:End ==\n" /usr/bin/ar: dist/build/Handler/AuthTut.o: 没有这样的文件或目录) yesod: readProcess: cabal-dev "buildopts" (exit 1): failed

这部分代码似乎不正确(见下文)。实际上我不明白他是如何在这部分代码中使用“toWidget”函数的。我认为缺少 Lucius 模块的导入,并将其添加到教程的导入列表中,但错误仍然存​​在。

提前感谢您的关注!

0 投票
1 回答
384 浏览

haskell - hackage.haskell.org 文档约定的含义

我目前正在阅读http://hackage.haskell.org/packages/archive/containers/latest/doc/html/Data-Set.html#t:Set

以下细节传达了什么(对于绝对的haskell初学者)?

可移植性:可移植性(还有哪些是可移植性价值?)
稳定性:临时性(还有哪些是稳定性价值?)
维护者:libraries@haskell.org
安全 Haskell:安全(有什么不安全的吗?)

0 投票
1 回答
3176 浏览

haskell - 模棱两可的出现“只是”

我是一个绝对的初学者。使用 emacs 浏览 LYAH。

我目前的设置:

  • Ubuntu 12.04 LTS(使用体验-初学者)
  • GNU Emacs 23(使用体验-初学者)
    • 能够在haskell专业模式下工作

发现难以遵循此处描述的第 2 点的说明(带上 haskell 库)。

还需要指导以启用Scion IDE

问题:

.hs 代码

运行代码时,出现以下错误:

请忽略拼写错误,原贴:

交互>:339:1:不在范围内:“只是”

这是真正的错误(在 Tikhon Jelvis 的评论之后添加):

0 投票
3 回答
294 浏览

haskell - 无法理解编码逻辑/原理/约定 - 为什么需要“显示 a”?为什么“显示汽车”或“显示字符串”不起作用?

下面给出的代码编译,好的。

有哪些基本原则/约定/逻辑可以提醒我只需要在“tellCar”中使用“Show a”,而不是任何其他选项?我在哪里可以找到资源来学习这些原则/约定/逻辑?

如果我在 tellCar 中错误地使用了“Show Car”,编译时会收到以下错误消息:

如果我在 tellCar 中错误地使用了“Show z”,编译时会收到以下错误消息:

如果我在 tellCar 中错误地使用了“显示字符串”,编译时会收到以下错误消息:

0 投票
2 回答
895 浏览

macos - 在 Homebrew 上分发 Haskell 程序

我正在我的 Mac 上用 Haskell 编写一个程序(命令行可执行文件,而不是应用程序)。我正在使用 GitHub 来托管 git 存储库和主页。我制作了<project>.cabalandSetup.hs文件,因为 Cabal 使构建、测试和生成文档变得容易。我也可能会上传到 Hackage,我不知道。

当我标记版本 1.0 时,我想制作一个 Homebrew 公式来从 GitHub 下载 tarball 并构建它。我希望唯一的依赖是 GHC

我将使用runhaskell Setup configure/ build/ install(前缀为 /usr/local/Cellar/...)而不是cabal避免依赖 cabal-install 的命令。

这一切都很好,直到我开始使用来自 Hackage 的包,例如 blaze-builder 和 aeson。我应该如何管理这个?

我不想强迫非 Haskell 用户下载整个 Haskell 平台。理想情况下,人们应该能够让 Homebrew 在构建我的程序之前安装 GHC,然后如果他们愿意,在之后删除 GHC。如果我将 Haskell 平台作为依赖项并首先通过 cabal-install 或类似方式安装我的 Haskell 依赖项,

  1. 包含包裹的~/.cabal/文件夹将被留下,即使之后它们
    brew uninstall haskell-platform
  2. 我还不如只经历 Hackage 并让人们cabal install成为它,即,将大部分范围限制在 Haskellers 上。

我认为 Cabal(-install) + Hackage 对开发和 Haskellers 来说是一个有用的工具,但不适合这个。

我是否应该只下载我正在使用的软件包的源代码并将其包含在我的源代码树中,并将其添加到构建命令中?或者我应该使用该--package-db选项(在此处找到)?或者我的公式可以即时下载软件包的压缩包并构建它吗?

我看了 cabal2arch 一点(Arch wikiGitHub repo),但我不确定它如何处理依赖关系,或者它是否只是在做我不想做的事情。

0 投票
2 回答
27451 浏览

haskell - 缺少随附的绑定 - 这是什么意思?这个怎么运作?

我在 LYAH 练习。

phoneBook.hs 文件包含以下代码:

电话簿 :: [(字符串,字符串)]

在尝试编译上述代码时,出现以下错误:

*Main> :load "/home/optimight/phoneBook.hs" [1 of 1] 编译 Main(/home/optimight/phoneBook.hs,解释)

/home/optimight/phoneBook.hs:1:1:“phoneBook”的类型签名缺少随附的绑定失败,已加载模块:无。

在 brano 的回答和对该答案的后续评论之后添加的问题:我们如何为上述类型签名提供实现?

如果我添加这个:

输入电话簿 = [(字符串,字符串)]

我收到以下错误:

Prelude> :load "/home/optimight/phoneBook.hs" [1 of 1] 编译主程序(/home/optimight/phoneBook.hs,解释)

/home/optimight/phoneBook.hs:2:6:类型或类声明格式错误:电话簿失败,加载模块:无

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 投票
1 回答
131 浏览

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

capslocker.hs 有以下代码:

haiku.txt 有以下内容:

在终端中,我能够做到:

还有这个:

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

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