问题标签 [haskell]
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.
.net - 哪种语言更适合通用编程,F# 还是 Haskell?
我目前正在学习 Haskell,您更喜欢哪种语言(F# 或 Haskell)来编写通用应用程序?
你认为哪种语言更强大?
haskell - 如何在现实世界中使用函数式编程?
函数式语言很好,因为它们通过消除状态来避免错误,还因为它们可以轻松地为您自动并行化,而不必担心线程数。
不过,作为 Win32 开发人员,我可以将 Haskell 用于我的应用程序的某些 dll 吗?如果我这样做了,是否会自动为我带来真正的优势?如果是这样,是什么给了我这个优势,编译器?
F# 是否会自动为您并行化您跨多个内核和 cpu 编写的函数?你会看到任务管理器中的线程数增加吗?
基本上我的问题是,我怎样才能以实际的方式开始使用 Haskell,如果我这样做,我真的会看到一些好处吗?
haskell - do 块中 case 表达式的 Haskell 语法
case
我无法用块中的表达式完全弄清楚这个语法问题do
。
什么是正确的语法?
如果你能纠正我的例子并解释它,那将是最好的。
一点更新。我的源文件是空格和制表符的混合体,它导致了各种问题。只是给从 Haskell 开始的任何其他人的小费。如果您遇到问题,请检查源代码中的制表符和空格。
c - Haskell FFI / C MPFR 库包装问题
为了创建任意精度的浮点数/替换 Double,我尝试使用 FFI 包装MPFR,但尽管我付出了所有努力,但最简单的代码仍然不起作用。它编译,它运行,但在假装工作一段时间后它会模拟地崩溃。一个简单的 C 版本代码可以愉快地将数字“1”打印到(小数点后 640 位)总共 10,000 次。Haskell 版本,当被要求做同样的事情时,在“1.0000...0000”的 289 次打印输出和 385 次打印输出后默默地破坏(?)数据,它导致断言失败和炸弹。我不知道如何继续调试它,因为它“应该工作”。
该代码可以在http://hpaste.org/10923阅读并在http://www.updike.org/mpfr-broken.tar.gz下载
我在 FreeBSD 6 上使用 GHC 6.83,在 Mac OS X 上使用 GHC 6.8.2。请注意,您需要为库和头文件(以及那些从 GMP) 来成功编译它。
问题
为什么 C 版本可以工作,而 Haskell 版本却失败了?接近 FFI 时我还缺少什么?我尝试了 StablePtrs 并得到了完全相同的结果。
其他人可以通过编译和运行我的代码来验证这是否只是 Mac/BSD 的问题吗?(C 代码“有效”吗?Haskell 代码“无效”有效吗?)Linux 和 Windows 上的任何人都可以尝试编译/运行并查看是否得到相同的结果吗?
C代码:(works.c)
Haskell 代码:(Main.hs --- 不起作用)
scala - 任何使用软件事务内存的实际经验?
似乎最近对 STM(软件事务内存)框架和语言扩展的兴趣越来越大。 Clojure尤其具有出色的实现,它使用MVCC(多版本并发控制)而不是滚动提交日志。GHC Haskell 还有一个非常优雅的 STM monad,它也允许事务组合。最后,为了稍微吹嘘一下我自己的号角,我最近为 Scala 实现了一个 STM 框架,它静态地强制执行引用限制。
所有这些都是有趣的实验,但它们似乎仅限于那个领域(实验)。所以我的问题是:你们有没有人在现实世界中看到或使用过 STM?如果是这样,为什么?它带来了什么样的好处?性能呢?(在这一点上似乎有很多相互矛盾的信息)你会再次使用 STM 还是更喜欢使用其他一些并发抽象,比如演员?
haskell - Haskell 的隐藏特性
Haskell 编程语言有哪些鲜为人知但有用的特性。(我知道该语言本身鲜为人知,但请与我合作。即使是对 Haskell 中简单事物的解释,例如用一行代码定义斐波那契数列,也会得到我的支持。)
- 尝试限制对 Haskell 核心的回答
- 每个答案一个功能
- 提供功能的示例和简短描述,而不仅仅是文档链接
- 使用粗体标题作为第一行标记特征
file - Haskell:将文件中的每一行插入到列表中
我目前正在使用 Haskell 进行项目,并且发现自己遇到了一些麻烦。我应该读取“dictionary.txt”文件中的每一行并将其插入到列表中,但我似乎不能这样做。我有这个代码:
它应该得到每一行(我知道它确实得到每一行,因为用“putStrLn inpStr”替换“inpStr:list”可以正常工作,显示所有行),并将其插入列表但我得到以下错误:
可能是因为 hGetLine 不是字符串,而是 IO 字符串,我不知道如何处理以获得可以插入到列表中的正确字符串。我不知道如何解决这个问题,或者问题到底是什么,但如果有人知道如何正确地将文件中的每一行放入列表中,我将不胜感激。
提前致谢!
shell - 在 MSYS shell 上沸腾 - 它可以更换吗?
我需要一个可维修的 MSYS 外壳。这是我目前的困境:
默认的 rxvt.exe 具有滚动条和复制粘贴功能,但不会将控制字符或箭头键发送到 shell 中正在运行的程序(如解释器/调试器)。在使用 Haskell 解释器 ghci 时,这是一个真正的难题。
另一个 shell sh.exe 处理控制字符(或至少其中一些),但没有滚动条或复制和粘贴。
rxvt 在输出缓冲方面也有(相对)更多的问题
我有哪些选择?替换外壳是否需要 msys 感知?我想要的只是一个健全的环境来使用 Haskell (ghc)、C++ (gcc) 和基本工具链(make 和 what not)。如果它不涉及疯狂的恶作剧,我愿意编译一个 shell。
graphics - 如何从 Functional MetaPost 查看输出的 .mp 文件
我对在 Mac OS X 上使用 Functional MetaPost 很感兴趣:
我正在寻找类似的教程:
http://haskell.org/haskellwiki/Haskell_in_5_steps
但是对于一个简单的 FuncMP 示例,即使用 GHC,我可以编译一些简单的东西,例如:
但我不知道如何查看这个 foo.1.mp 输出。(它给出了关于找不到“virmp”的运行时错误;我的 MetaPost 二进制文件是“mpost”;我无法弄清楚如何覆盖此参数或我的 .FunMP 文件正在或应该做什么......)我可以运行mpost ,但输出 (foo.1.1) 是什么,PostScript?每股收益?我该如何使用它?(我想我只需要一个简单的 LaTeX 文件,其中包含 EPS 图或其他东西......)
最好是生成输出(我可以查看的 .ps 或 .pdf),这样我就可以使用 Functional MetaPost真正到达某个地方,学习它,玩它,而不是用我的头撞到路径、二进制文件和 shell 命令。
haskell - 使用 foldr 实现 zip
我目前正在阅读 Real World Haskell 的第 4 章,我正试图围绕使用 foldr 来实现 foldl。
(这是他们的代码:)
我想我会尝试zip
使用相同的技术来实现,但我似乎没有取得任何进展。甚至可能吗?