haskell相关内容

交叉编译GHC失败,缺少图标

成功运行 ./configure --target=arm-linux-androideabi --with-gcc=arm-linux-androideabi-gcc 然后Make失败。 checking value of ENOTSUP... 95 checking value of SIGINT... 2 checking value of O_BINARY... 0 che ..
发布时间:2022-09-06 12:54:49 其他开发

`ghci`中的Haskell多行`let`

我在ghci中发现以下功能正常工作: let foo = ["a", "b", "c"] .但这不起作用: let bar = ["a", "b", "c"] .这也不是: let baz = ["a"] ++ ["b"] ++ ["c"] 当我尝试将其编译为文件时,提供了相同的错误, ..
发布时间:2022-09-06 12:43:48 其他开发

GHC生成的.hi、.p_hi和.dyn_hi文件有什么不同

我正在尝试减小包含NIX派生的归档的大小。我注意到每个模块都有3个大小相似的文件hi、p_hi和dyn_hi。 GHC(提示)解释器只需要hi,如果我删除REST变量,则不会发生任何情况。 p_hi和dyn_hi沙袋也是这样吗? 推荐答案 通常.hi文件是关联的.o对象文件的接口定义。旧版本的GHC一次只能与一个版本一起使用。当库需要分析信息或动态链接时,这会导致问题,因为 ..
发布时间:2022-09-06 12:30:30 其他开发

具有全局GHC的Haskell堆栈

是否可以将stack与已安装的ghc一起使用,而不安装ghc或cabal的本地副本? 推荐答案 是。如果PATH中的ghc是所选快照的正确版本,stack将很乐意使用它。 % ghc --version The Glorious Glasgow Haskell Compilation System, version 7.8.4 % stack --resolver=lts-2. ..
发布时间:2022-09-06 12:24:27 其他开发

FlexibleContents扩展有什么好处?你能用一个简单的例子来解释一下吗?

我试图通过搜索对普通人(例如,像我一样读过LYHFGG的人)解释它的网页来了解FlexibleContages扩展的作用,但我没有找到任何这样的资源。 因此我就这个话题向专家请教:你们能解释一下这个扩展是什么,为什么会存在,并给出一两个简单的例子,说明人们应该如何使用它以及为什么使用它? 此外如果我正在阅读他人的代码which使用此扩展,那么我应该了解有关此扩展的哪些信息才能理解使用此 ..
发布时间:2022-09-06 12:15:54 其他开发

在依赖类型的函数式编程语言中,展平列表是否更容易?

在Haskell中寻找一个可以展平任意深度嵌套列表的函数,即递归地应用concat并在最后一次迭代时停止(使用非嵌套列表)的函数时,我注意到这需要有一个更灵活的类型系统,因为随着列表深度的变化,输入类型也会有所不同。事实上,有几个堆栈溢出问题--例如this一个--其中响应指出,不存在将在不同深度‘查看’不同嵌套列表的函数。 编辑:有些答案在Haskell中提供了解决办法,用于自定义数据类型,或 ..
发布时间:2022-08-20 11:39:27 其他开发

在Haskell中有对象等价性的意义吗?

如果我在Haskell中有一个单链接列表: data LL a = Empty | Node a (LL a) deriving (Show, Eq) 我可以轻松地实现在结尾和开头插入的方法。但是,如何在特定元素之前或之后插入呢?如果我有LL的Integer,我能否在Haskell中区分在包含1的特定节点之后插入4,而不是在处理列表时看到的第一个1? Node 1 (Node 2 ..
发布时间:2022-08-17 22:17:36 其他开发

更新Haskell中的外部变量

从某种意义上说,Haskell是一种纯粹的函数式语言,当然,习惯用法代码试图尽可能地具有函数性。同时,Haskell确实支持对其他语言中熟悉的一些命令式模式进行相当直接的翻译,例如http://learnyouahaskell.com/a-fistful-of-monads#do-notation (我知道在某种意义上,do-notation仍然“真正”起作用;这里的要点是,它允许相当直接地 ..
发布时间:2022-08-14 21:50:15 其他开发

将叶子添加到二叉搜索树,Haskell

类型定义为 data BST = MakeNode BST String BST | Empty 我正在尝试向树中添加新的叶子,但我真的不知道如何使用递归来做到这一点。 函数设置如下 add :: String -> BST -> BST 推荐答案 使用二叉树的优势在于,您只需查看树的“当前部分”即可知道在何处插入节点。 那么,让我们定义a ..
发布时间:2022-06-30 22:05:01 其他开发

平面列表和免费单元格

我试图说服自己,List Monad(具有平面列表、列表连接和映射元素的Monad)不是自由Monad(准确地说,是与某个函数器T关联的自由Monad)。据我所知,我应该能够在 年实现这一目标。 首先在单体列表中查找常用运算符FMAP、Join等之间的关系 然后证明了这种关系不存在于函子T上的任何自由单子中,对于所有T 列表单子中的特殊关系是什么,使其有别于自由单子?如果我不知 ..
发布时间:2022-06-29 13:45:20 其他开发

Haskell/Parsec:如何使用Text.Parsec.Inert中的函数?

我在解决如何使用indentsHaskell程序包提供的Text.Parsec.Indent模块中的任何函数时遇到问题,该程序包是Parsec的一种加载项。 所有这些函数都有什么作用?如何使用它们? 我可以理解withBlock的简短Haddock描述,我找到了如何使用withBlock、runIndent和IndentParsertypehere、here和here的示例。我还可以理 ..
发布时间:2022-05-15 10:43:04 其他开发

在绑定方面,如何定义应用?

在Haskell中,应用程序被认为比函数器更强,这意味着我们可以使用应用程序Like来定义函数器 -- Functor fmap :: (a -> b) -> f a -> f b fmap f fa = pure f fa 和Monad被认为比Applicative&;Functor更强,这意味着。 -- Functor fmap :: (a -> b) -> f ..
发布时间:2022-04-20 14:24:58 其他开发

为什么定义MonadReader需要FunctionalDependency?

我刚刚理解了类的定义MonadReader class Monad m => MonadReader r m | m -> r where ... 阅读了Haskell中的函数依赖文档,现在我可以理解| m -> r指定类型变量r由m唯一决定。根据我目前所见的几个典型的MonadReader实例(例如Reader),我认为这个要求是合理的,但在我看来,即使没有这个函数依赖子句,我们仍然可 ..
发布时间:2022-04-20 14:21:32 其他开发