(映射的泛型类型。过滤器)

问题描述我不明白为什么map.filter泛型类型是map.filter::(a->Bool)->[[a]]->[[a]]。我知道映射和筛选器类型是map::(a->b)->[a]->[b]和filter::(a->Bool)->[a]->[a]。也(.)::(b->c)->(a

发布:2023-01-03 标签:typestype-inferencefilterhaskellmap-function


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

问题描述类型定义为dataBST=MakeNodeBSTStringBST|Empty我正在尝试向树中添加新的叶子,但我真的不知道如何使用递归来做到这一点。函数设置如下add::String->BST->BST推荐答案使用二叉树的优势在于,您只需查看树的"当前部分"即可知道在何处

发布:2022-10-16 标签:binary-treehaskell


平面列表和免费单元格

问题描述我试图说服自己,ListMonad(具有平面列表、列表连接和映射元素的Monad)不是自由Monad(准确地说,是与某个函数器T关联的自由Monad)。据我所知,我应该能够在年实现这一目标。首先在单体列表中查找常用运算符FMAP、Join等之间的关系然后证明了这种关系不存

发布:2022-10-16 标签:listmonadshaskellocamlcategory-theory


在Haskell中,从左到右对树中出现的所有叶子进行编号

问题描述函数类型为Treea->Tree(a,Int)。我希望在整个树中进行计数,并相应地对每个出现的叶进行编号。到目前为止,我已经尝试过了:labelTree::Treea->Tree(a,Int)labelTree(Leafa)=Leaf(a,1)labelTree(tr)=

发布:2022-10-16 标签:treebinary-treehaskelltree-traversaltraversal


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

问题描述我在解决如何使用indentsHaskell程序包提供的Text.Parsec.Indent模块中的任何函数时遇到问题,该程序包是Parsec的一种加载项。所有这些函数都有什么作用?如何使用它们?我可以理解withBlock的简短Haddock描述,我找到了如何使用wit

发布:2022-10-16 标签:parsingindentationhaskellparsec


生成前n个素数(Haskell)

问题描述我有这个功能:generatePrimes::Integrala=>a->[a]generatePrimesn=[i|i<-[2..],isPrimei]我正在尝试获取第一个n素数。我知道我可以通过使用take函数调用main中的函数(并获取列表的第一个n元素),但我希望

发布:2022-10-16 标签:listprimeslazy-evaluationhaskellcounting


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

问题描述在Haskell中,应用程序被认为比函数器更强,这意味着我们可以使用应用程序Like来定义函数器--Functorfmap::(a->b)->fa->fbfmapffa=puref<*>fa和Monad被认为比Applicative&amp;Functor更强,这意味着。

发布:2022-10-16 标签:monadshaskellapplicativefunctor


为什么定义MonadReader需要FunctionalDependency?

问题描述我刚刚理解了类的定义MonadReaderclassMonadm=>MonadReaderrm|m->rwhere...阅读了Haskell中的函数依赖文档,现在我可以理解|m->r指定类型变量r由m唯一决定。根据我目前所见的几个典型的MonadReader实例(例如Re

发布:2022-10-16 标签:type-systemsmonadshaskellghc


函数monad真的提供了比函数应用函数更多的东西吗?如果是这样的话,是什么?

问题描述对于函数monad,我发现(<*>)和(>>=)/(=<<)有两个非常相似的类型。特别是,(=<<)使相似性更加明显:(<*>)::(r->a->b)->(r->a)->(r->b)(=<<)::(a->r->b)->(r->a)->(r->b)就像(<*>)和(>>=)

发布:2022-10-16 标签:functional-programmingmonadshaskellapplicativecombinatory-logic


《哈斯克尔与普里蒂》中的单曲

问题描述我的问题是,Haskell中的单体是否真的保持了Haskell的纯净,如果是的话,又是如何保持的。我经常读到关于副作用是如何不纯的,但有用的程序(例如I/O)需要副作用。在接下来的一句话中,哈斯克尔对此的解决方案是单体。然后,人们在某种程度上解释了单药,但并没有真正说明它

发布:2022-10-16 标签:iomonadshaskell