问题标签 [leksah]

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 投票
2 回答
2328 浏览

haskell - 导入 Haskell 模块

我是 Haskell 的新手。当我尝试使用Daysfrom时Data.Time怎么会出现此错误:

我正在导入 Data.List 和 Control.Monad,都没有给我这个错误消息,但是代码import Data.Time确实如此。

我错过了什么?

谢谢您的帮助!

编辑:我在使用时收到类似的错误消息:import Directory

谢谢大家,你们的回答让我走上了正轨!

0 投票
3 回答
3243 浏览

haskell - haskell leksah 你好世界

今天早上的坏消息,我愿意尝试使用 Leksah(顺便说一句,看起来不错的应用程序)来继续学习 Haskell。

我无法编译阅读leksah 教程时发现的“Hello World”示例。

compilation-error: src\Main.hs:16:5: parse error on input='`

compilation-error: src\Main.hs:1:0: The main functionmain' 不是由模块导出的Main'

你有什么建议我试试别的?

重要编辑现在 Leksah 附带一个文件 Main.hs,在您第一次启动 leksah 时直接加载,其中包含一个功能齐全的 Hello World 迷你项目。它还具有极简的单元测试计数器部分。非常适合初学者:-)

0 投票
1 回答
447 浏览

haskell - 在多个文件之间组织一个 haskell 包

我又是一个关于 Haskell 和 Leskah 的新手问题。

(首先,对 Haskell 爱好者的主观赞美:每次回来学习 Haskell 时,我越来越喜欢它。我希望这会持续很长时间 :-)。最近的乐趣是 Leskah 将符号自动转换为数学的糖。它使代码看起来非常好。但这不是重点……)

我想将我的学习者包组织成几个文件。但是我没有成功地将包含其他定义的第二个文件(例如 Second.hs)添加到我当前的包构建单元中。我已将它添加到 Leskah/Edit Package/Extra Files 中。但这似乎不起作用。此外,我觉得以这种方式添加每个新文件(通过 Leskah/Edit Package/Extra Files)有点尴尬。

无论如何,结果所构建的仍然只是我的 Main.hs 的内容。我肯定错过了一些观点?!

另一个问题是,在 C++ 中,我大量使用namespace以便按主题/目标对我的对象定义进行排序。Haskell 中命名空间的等价物是什么?一个模块?一袋 ?

0 投票
1 回答
865 浏览

haskell - 如何将 hackage 包包含到 Leksah

我想开始使用 Haskell 使用hExpat进行 Xml I/O。但是,我没有找到向 Leksah 表达我想将该包导入当前模块的位置。

你能告诉我如何实现这一目标吗?

编辑:仍在搜索。此问答中有一些有用的信息,但仅与 Data.Time Data.Directory 有关。

就我而言,它是一个下载、解压缩的 Hackage 包。

0 投票
1 回答
1581 浏览

browser - Leksah 系统范围模块浏览器为空

我刚刚按照用户手册安装了 leksah 。手册说我应该在第一次启动 Leksah 之前进行一次 ghc-pkg 重新缓存,否则我可能会在系统范围内看到一个空的模块浏览器。我的问题是这就是我所看到的,即使我做了重新缓存。

基本上,我的设置过程是这样的:Leksah 安装 -> ghc-pkg recache -> 启动 Leksah。然后我进入一个屏幕,告诉我 Leksah 将为我安装的包收集和下载元数据,并警告我这可能需要很长时间。使用推荐的默认设置,我看到一个进度条大约五秒钟,然后 Leksah 启动。这些默认值是:

  • haskell 包源没有路径。
  • 预构建元数据 URL: http: //www.leksah.org
  • 检索,然后构建。
  • 服务器端口:11111。
  • 最后一个连接的结束服务器。

在手册中继续阅读,它说如果我只是想测试,可以省略 haskell 包源的位置(这是默认设置),并且可以稍后填写该位置。这让我相信缺少 Haskell 源路径是问题所在,但我不知道我的 Haskell 源在哪里。它们似乎不在 Haskell Platform 文件夹中。有谁知道如何解决这个问题?

其他可能有帮助的东西:

  • 如手册中所述,我的路径和 wget 上都有 grep。
  • ghc-pkg recache 命令大约需要一秒钟。我不知道,如果它应该更多。
  • 进行重建元数据时,我得到一个控制台,其中包含许多从 0 到 1 的数字,用于 update_toolbar,然后是很多“启动服务器”->“元数据收集器无关”->“元数据收集已完成”。

我的设置:

  • 赢xp sp3
  • ghc 6.12.3
  • Leksah 0.8.0.6
  • GNU grep 2.5.4
  • GNU wget 1.5.3.1

我很乐意提供更多信息。谢谢你。

0 投票
1 回答
1517 浏览

haskell - 为什么 Haddock 文档没有出现在 Hackage 上?

我有一个关于 Hackage 的包,其中包含黑线鳕生成的文档,但它没有出现在 Hackage 页面上。我能够成功上传所有内容,但没有显示文档。

我使用cabal haddock或使用Package > Build DocumentationLeksah IDE 生成文档。

当我去Package > Open DocLeksah 时,它找不到它,因为它正在寻找dist/doc/html/hspec/hspec/index.html但生成的文件位于dist/doc/html/hspec/index.html. 我认为 Hackage 也在同一个地方寻找。

我猜我的源文件不在预期的位置,但我不知道它们应该如何。

源代码和目录结构可以在https://github.com/trystan/hspec找到。

0 投票
2 回答
153 浏览

networking - TCP 在 GHCi 中工作,在使用 Leksah 编译的程序中缓冲直到程序退出

我编写了这个简单的原型客户端来向我正在开发的服务器发送命令。它可以在 GHCi 中完美运行,但编译后的版本会缓冲输入的所有内容,直到我输入“quit”并且程序退出。那时所有的输入文本都会被发送。

我究竟做错了什么?为什么编译时会有所不同?

更新:如果使用ghc Main.hs. 使用Leksah通过 Package -> Build 编译时会出现问题。有人知道如何获取 Leksah 使用的命令行吗?

系统信息:OSX 10.6、GHC 7.0.3、网络 2.3.0.2

0 投票
3 回答
1502 浏览

haskell - 如何删除 Haskell (GHC) 中的“if ... then ... else ...”关键字?

我想删除if ... then ... else ...关键字,因为我在 Haskell 中嵌入了一种语言/DSL。ifthenelse在许多领域传达了很多意义,如果我可以重新定义(或不​​定义)它们以反映语言/领域的性质,那就太好了。

我在 Google 和 stackoverflow 上搜索过,但一无所获。if ... then ... else ...(我确实找到了一个关于为什么在 Haskell 中作为关键字包含的旧线程。)

我的 IDE 在 Leksah 中,如果可以删除关键字,那么设置将if ... then ... else ...关键字更改回其正常字体/颜色/非粗体也是很好的。


我已经尝试过if'forif等的命名约定。感觉不太好,尤其是当我想定义ifand if',并且必须定义if'andif''而不是 or if1and时if2。两者的存在if'if可能令人困惑。(在我的情况下,混淆并不是那么严重的问题,因为 DSL 的用户是 Haskell 程序员,但我认为它在其他情况下会有所帮助)。


总结迄今为止的回应:

  • 使用RebindableSyntaxGHC 的扩展。不像删除关键字那样通用:保留了 Haskell 的 if-then-else 的语法。(弗里希·拉贝)
  • 解决方法:通过使用data Conditional b a = If b (Then a) (Else a)(仅适用于某些情况)使用非常相似的单词/名称。(加州麦肯)

如果RebindableSyntax是一个相对较新的功能,那么它不太可能找到更通用的方法,至少要等到 GHC 的下一个版本。

0 投票
1 回答
605 浏览

macos - 让 Leksah 在 Mac OS X 10.5.8 上工作

我正在使用 Mac OS X 10.5.8。 另一个问题表明 Leksah 是 Haskell 开发的首选 IDE。

但是,Leksah(版本 0.10.0.4)需要 GHC 7.0.3(问题 6.12.2问题 6.12.3)。不幸的是,可用于 OS X 10.5.8 的最新 Haskell 平台是 6.12.3。

如何让 Leksah 在我的 Mac 上工作?无法升级操作系统。我应该只使用不同的 IDE/文本编辑器吗?

0 投票
3 回答
916 浏览

haskell - 将 Leksah 调试器与使用 readLn 和类似程序的程序一起使用

我最近安装了 Leksah(Windows 7 64 位上的 0.10.0.4),这对于 Haskell 来说似乎是一个有趣的 IDE。但是,在使用程序时,当涉及到用户对程序的输入时,我显然忽略了一些东西。

我有一个非常简单的

阻止我的代码。当调试器点击 readLn 时,我希望能够在某处提供输入。但是,我找不到任何输入窗口。起初我预计可能会启用日志窗口,但我找不到与程序交互的地方。在 GHCi 中运行一切都符合预期,所以我确定它不是代码。

此外,当我只是执行“Package->Run”时,提示在其他日志输出到达之前不会变得可见(例如进行重建)。

过去在 Linux 上使用 Emacs 和 Haskell 模式,我希望获得更友好的用户体验,这样我就可以让一些 Windows 程序员参与 Haskell 主题。我错过了什么吗?