haskell相关内容
我不明白为什么map . filter泛型类型是map . filter :: (a -> Bool) -> [[a]] -> [[a]]。 我知道映射和筛选器类型是map :: (a -> b) -> [a] -> [b]和filter :: (a -> Bool) -> [a] -> [a]。也(.) :: (b -> c) -> (a -> b) -> a -> c。 所以我猜测是a
..
成功运行 ./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
..
我在ghci中发现以下功能正常工作: let foo = ["a", "b", "c"] .但这不起作用: let bar = ["a", "b", "c"] .这也不是: let baz = ["a"] ++ ["b"] ++ ["c"] 当我尝试将其编译为文件时,提供了相同的错误,
..
我正在尝试这个简单的例子: module Main where import Network.HTTP import Lib get :: String -> IO String get url = simpleHTTP (getRequest url) >>= getResponseBody -- 2. Get the response code getCode :: String
..
我正在尝试减小包含NIX派生的归档的大小。我注意到每个模块都有3个大小相似的文件hi、p_hi和dyn_hi。 GHC(提示)解释器只需要hi,如果我删除REST变量,则不会发生任何情况。 p_hi和dyn_hi沙袋也是这样吗? 推荐答案 通常.hi文件是关联的.o对象文件的接口定义。旧版本的GHC一次只能与一个版本一起使用。当库需要分析信息或动态链接时,这会导致问题,因为
..
是否可以将stack与已安装的ghc一起使用,而不安装ghc或cabal的本地副本? 推荐答案 是。如果PATH中的ghc是所选快照的正确版本,stack将很乐意使用它。 % ghc --version The Glorious Glasgow Haskell Compilation System, version 7.8.4 % stack --resolver=lts-2.
..
我试图通过搜索对普通人(例如,像我一样读过LYHFGG的人)解释它的网页来了解FlexibleContages扩展的作用,但我没有找到任何这样的资源。 因此我就这个话题向专家请教:你们能解释一下这个扩展是什么,为什么会存在,并给出一两个简单的例子,说明人们应该如何使用它以及为什么使用它? 此外如果我正在阅读他人的代码which使用此扩展,那么我应该了解有关此扩展的哪些信息才能理解使用此
..
下面是一个返回指针对齐的简单函数: {-# LANGUAGE ScopedTypeVariables #-} import Foreign.Ptr (Ptr) import Foreign.Storable (Storable, alignment) main = return () ptrAlign1 :: (Storable a) => Ptr a -> Int ptrAlign1
..
在Haskell中寻找一个可以展平任意深度嵌套列表的函数,即递归地应用concat并在最后一次迭代时停止(使用非嵌套列表)的函数时,我注意到这需要有一个更灵活的类型系统,因为随着列表深度的变化,输入类型也会有所不同。事实上,有几个堆栈溢出问题--例如this一个--其中响应指出,不存在将在不同深度‘查看’不同嵌套列表的函数。 编辑:有些答案在Haskell中提供了解决办法,用于自定义数据类型,或
..
如果我在Haskell中有一个单链接列表: data LL a = Empty | Node a (LL a) deriving (Show, Eq) 我可以轻松地实现在结尾和开头插入的方法。但是,如何在特定元素之前或之后插入呢?如果我有LL的Integer,我能否在Haskell中区分在包含1的特定节点之后插入4,而不是在处理列表时看到的第一个1? Node 1 (Node 2
..
从某种意义上说,Haskell是一种纯粹的函数式语言,当然,习惯用法代码试图尽可能地具有函数性。同时,Haskell确实支持对其他语言中熟悉的一些命令式模式进行相当直接的翻译,例如http://learnyouahaskell.com/a-fistful-of-monads#do-notation (我知道在某种意义上,do-notation仍然“真正”起作用;这里的要点是,它允许相当直接地
..
我正在尝试创建一个函数,该函数将给定列表中的所有数字相加,然后将其除以6。 average :: [Integer] -> Integer average m = (sum m) quot 6 但这是我收到的错误消息: Couldn't match type `Integer'
..
类型定义为 data BST = MakeNode BST String BST | Empty 我正在尝试向树中添加新的叶子,但我真的不知道如何使用递归来做到这一点。 函数设置如下 add :: String -> BST -> BST 推荐答案 使用二叉树的优势在于,您只需查看树的“当前部分”即可知道在何处插入节点。 那么,让我们定义a
..
我试图说服自己,List Monad(具有平面列表、列表连接和映射元素的Monad)不是自由Monad(准确地说,是与某个函数器T关联的自由Monad)。据我所知,我应该能够在 年实现这一目标。 首先在单体列表中查找常用运算符FMAP、Join等之间的关系 然后证明了这种关系不存在于函子T上的任何自由单子中,对于所有T 列表单子中的特殊关系是什么,使其有别于自由单子?如果我不知
..
函数类型为Tree a -> Tree (a, Int)。我希望在整个树中进行计数,并相应地对每个出现的叶进行编号。 到目前为止,我已经尝试过了: labelTree :: Tree a -> Tree (a, Int) labelTree (Leaf a) = Leaf (a,1) labelTree (tr) = labelTree' (tr) 0 labelTree'
..
我在解决如何使用indentsHaskell程序包提供的Text.Parsec.Indent模块中的任何函数时遇到问题,该程序包是Parsec的一种加载项。 所有这些函数都有什么作用?如何使用它们? 我可以理解withBlock的简短Haddock描述,我找到了如何使用withBlock、runIndent和IndentParsertypehere、here和here的示例。我还可以理
..
我有这个功能: generatePrimes :: Integral a => a -> [a] generatePrimes n = [i | i
..
在Haskell中,应用程序被认为比函数器更强,这意味着我们可以使用应用程序Like来定义函数器 -- Functor fmap :: (a -> b) -> f a -> f b fmap f fa = pure f fa 和Monad被认为比Applicative&;Functor更强,这意味着。 -- Functor fmap :: (a -> b) -> f
..
我刚刚理解了类的定义MonadReader class Monad m => MonadReader r m | m -> r where ... 阅读了Haskell中的函数依赖文档,现在我可以理解| m -> r指定类型变量r由m唯一决定。根据我目前所见的几个典型的MonadReader实例(例如Reader),我认为这个要求是合理的,但在我看来,即使没有这个函数依赖子句,我们仍然可
..
对于函数monad,我发现()和(>>=)/(=) :: (r -> a -> b) -> (r -> a) -> (r -> b) (= r -> b) -> (r -> a) -> (r -> b) 就像()和(>>=)/(=
..