小编Cha*_*eow的帖子

非 IO monad 是否有可能违反 Haskell 中的关联性?

我是 Haskell 的新手,并试图更好地了解 monad 的结合律,其中规定:

m >>= (\x -> kx >>= h) = (m >>= k) >>= h

通过试图构建会违反该法律的虚假 monad。在高层次上,这条定律似乎是在强制对我应用“一元函数”(不确定是否有合适的术语)的关联性。特别是,它看起来像是在强制执行某些版本的 (fg) x = f(g(x)),转换为 monad。

然而,如果我们认为 f 和 g 是纯数学函数,那么这种关系似乎是微不足道的。这让我想知道如果不涉及 IO 是否有可能违反这条法律,因为以我目前对 Haskell 的基本了解,这将确保 f 和 g 没有副作用。

我希望有人能详细说明我的总体思路是否正确,或者我是否有一些关键的误解,并且可以在不使用 IO 的情况下构建这样一个反例。

haskell functional-programming

7
推荐指数
2
解决办法
170
查看次数

将 Haskell 全新安装到 Windows 10 机器上?

我刚开始使用 Haskell,真的很喜欢这门语言!正在寻找一些安装帮助。

我刚刚完成了 CIS194 和大部分优秀的 LYAH 书。我目前正在做这里推荐的 fp 课程:https : //github.com/bitemyapp/fp-course

我的问题是,到目前为止,我已经在 mac os 笔记本电脑上完成了我的工作,现在想在我的 Windows 桌面上安装 haskell,以便在我更大、更舒适的家庭设置上工作;但是我一直在努力寻找一种方法来进行“干净”的安装。haskell 平台不断推荐 choclatey,它似乎没有为我提供更改下载位置的选择。我的问题是我的操作系统驱动器使用了一个小型 SSD,并且有一个 2TB 的大型辅助驱动器,我希望在其中进行安装。

我的另一个困惑是有些人似乎强烈推荐堆栈安装而不是 haskell 平台安装;而其他人说没关系。我是一个初学者,所以我怀疑这对我很重要,但是在我安装它们之后,haskell 平台和 choclatey 非常令人沮丧,我不仅无法找到一种对初学者友好的方式来更改安装目录,完全删除包/haskell非常迟钝,很难找到资源。

我担心的是,随着时间的推移,这将占用我较小的系统驱动器上的大量空间,迫使我再次重新格式化。我不确定 Stack 安装在这方面是否会更好,但我希望安装能让我准确选择所有文件的去向。

许多帖子概述了一个应该随 haskell 平台一起提供的卸载程序,但它不适合我,也没有显示在我的添加或删除程序中,所以我不得不求助于简单的重新格式化,现在我正在寻求帮助,然后再跳回来(到希望避免再次这样做)。

总而言之,我是否可以帮助在非家用驱动器上进行安装,该驱动器很容易删除,并且清楚地知道所有 haskell 文件的确切位置,在 Windows 10 机器上?真的很感激这方面的任何帮助!

haskell

5
推荐指数
1
解决办法
165
查看次数

标签 统计

haskell ×2

functional-programming ×1