Tag: haskell

foldl是尾recursion,那么foldr怎么比foldl跑得快呢?

我想testingfoldl vs foldr。 从我看到你应该使用foldl在任何时候都可以由于尾巴reccursion优化。 这是有道理的。 但是,运行这个testing后,我很困惑: (使用时间命令需要0.057s): a::a -> [a] -> [a] ax = ([x] ++ ) main = putStrLn(show ( sum (foldr a [] [0.. 100000]))) foldl(使用时间命令时需要0.089s): b::[b] -> b -> [b] b xs = ( ++ xs). (\y->[y]) main = putStrLn(show ( sum (foldl b [] [0.. 100000]))) 很显然,这个例子是微不足道的,但是我为什么会打败foldl而感到困惑。 这不是一个明确的情况下foldl胜利吗?

Haskell:如何映射元组?

在Haskell中,我可以轻松映射一个列表: map (\x -> 2*x) [1,2] 给我[2,4] 。 有没有可以像这样工作的“mapTuple”function? mapTuple (\x -> 2*x) (1,2) 其结果是(2,4) 。

拉链创buildXML请求?

如何创build符合XSD的XML请求以使请求有效? 一种方法是创build整个请求,然后在XSD上进行validation。 有没有办法在模式中创build请求? 想到的第一个想法是拉链,但我真的不确定是否可以在这里使用。 也许我还没有很好地理解,但是如果已经有了一些定义好的结构并且需要改变结构的话,看起来Zipper就非常棒。 拉链可以用于变化的结构吗? (例如将序列附加到序列数组?)

独立子集的套餐包集

给定一套cabal包,有没有办法自动计算独立包的子集? 换句话说,包的子集将足以安装它们全部。 对于[network,parsec]答案是[network]因为它的network依赖于parsec 。 对于[network,containers] ,答案是[network,containers]因为: network不依赖于containers 所有network的依赖不依赖containers containers不依赖于network 所有containers的依赖不依赖于network find2个包装的答案并不难。 真正有趣的是find独立的集[containers, directory, filepath, lens, xml, http-conduit, regex-posix, monad-control, unordered-containers, glib, hashable, hspec, split, aeson, attoparsec, stm, QuickCheck] 。 从答案我期望一些function的基础上, ∷ [Packages] → IO [Packages] 。

Yesod多重身份validation?

我需要在我的应用程序需要多个身份validationtypes; 特别是:应用程序的某些部分需要对Dropbox进行身份validation,并且某些部分需要基于电子邮件的身份validation,例如browserID。 我该如何处理? 我可以将身份validation附加到子网站吗? 由于YesodAuth类在所有示例中都将主基础数据types作为其参数,因此我怎么能做到这一点并不明显。 如果不是,还有其他的方法吗?

有关GHC实施的好介绍性文字?

在Haskell中编程时(特别是在解决Project Euler问题时,次优解决scheme往往会强调CPU或内存的需求),我经常困惑为什么程序的行为是这样的。 我看着简介,尝试引入一些严格的,select另一个数据结构,但大多数是在黑暗中摸索,因为我缺乏一个良好的直觉。 另外,虽然我知道Lisp,Prolog和命令式语言是如何实现的,但我不知道如何实现一个懒惰的语言。 我也有点好奇。 因此,我想更多地了解从程序源到执行模型的整个链。 我想知道的事情: 典型的优化应用了什么? 当有多个候选人进行评估时,执行顺序是什么(虽然我知道它是由所需的输出驱动的,但是先评估A然后再评估B或者先评估B以检测你不需要A) thunk代表什么? 如何堆栈和堆使用? 什么是CAF? (分析表明有时热点在那里,但我不知道)

Web与Haskell刮擦

Haskell网站的当前状态是什么? 我试图让自己更多地做我在哈斯克尔快速的一次性的任务,以帮助提高我的语言舒适度。 在Python中,我倾向于使用优秀的PyQuery库。 Haskell有类似的简单和容易吗? 我已经研究了Tag Soup,虽然parsing器本身看起来不错,但是实际上遍历页面并不像其他语言那样好。 那里有更好的select吗?

真实世界的Haskell编程

多年来一直是命令式的开发者,我从来没有学过函数式编程的冲动。 几个月前我终于决定学习Haskell。 这是一种相当酷的语言,但我很困惑如何以这样的语言编写一个事件驱动的真正的应用程序。 你知道一个很好的教程吗? 注意:当我说“真正的应用程序”,我不是说真实的世界,生产准备的应用程序。 我只是指一个小样本应用程序,只是为了掌握它。 我认为像Windows caculator的简化版本会很好,然后可能会更复杂一些。

为什么这个程序的F#版本比Haskell版本快6倍?

Haskell版本(1.03s): module Main where import qualified Data.Text as T import qualified Data.Text.IO as TIO import Control.Monad import Control.Applicative ((<$>)) import Data.Vector.Unboxed (Vector,(!)) import qualified Data.Vector.Unboxed as V solve :: Vector Int -> Int solve ar = V.foldl' go 0 ar' where ar' = V.zip ar (V.postscanr' max 0 ar) go sr (p,m) = sr + […]

是否有可能在模板Haskell中的函数生成评论?

在我们的项目中,我们有很多TH生成的函数。 向他们添加通用评论是有意义的,以便他们在Haddock / Hoogle中可见。 至less,“这是由TH产生的”。 是这样的可能吗?