草庐IT

haskellers

全部标签

c++ - 为什么多态性在haskell(GHC)中如此昂贵?

我问这个问题是引用this所以问题。DonStewart接受的答案:第一行说“您的代码是高度多态的,将所有浮点变量更改为Double..”,它提供了4倍的性能提升。我对在Haskell中进行矩阵计算很感兴趣,我应该养成编写高度单态代码的习惯吗?但是有些语言很好地利用了临时多态性来生成快速代码,为什么GHC不会或不能?(阅读C++或D)为什么我们不能为Haskell提供blitz++或eigen之类的东西?我不明白GHC中的类型类和(临时)多态性是如何工作的。 最佳答案 对于多态代码,通常需要在代码大小和代码速度之间进行权衡。要么为要

c# - Haskell类型类和C++模板类

是否可以使用C++(或C#)模板模拟Haskell的类型类功能?这样做有意义吗?我试图用C++编写Functor类,但我做不到。我尝试过这样的事情:#includeusingnamespacestd;//AfunctionclasstomaketypesmorereadabletemplateclassFunction{private:output(*ptrfunc)(input);public:Function(output(*ptr)(input)){ptrfunc=ptr;}outputcall(inputx){return(*ptrfunc)(x);}outputoperato

multithreading - Haskell 对 Node.js 的响应是什么?

我相信Erlang社区并不羡慕Node.js,因为它本身就提供非阻塞I/O,并且可以轻松地将部署扩展到多个处理器(Node.js中甚至没有内置的东西)。更多详情请访问http://journal.dedasys.com/2010/04/29/erlang-vs-node-js和Node.jsorErlangHaskell呢?Haskell能否提供Node.js的一些好处,即无需求助于多线程编程即可避免阻塞I/O的干净解决方案?Node.js有很多吸引人的地方事件:无线程操作,程序员只提供回调(如在Snap框架中)回调保证在单线程中运行:不可能出现竞争条件。漂亮而简单的UNIX友好API

Python、Ruby、Haskell——它们提供真正的多线程吗?

我们计划用任何一种非常高级的编程语言编写一个高度并发的应用程序。1)Python、Ruby或Haskell是否支持真正的多线程?2)如果程序包含线程,虚拟机是否会自动将工作分配给多个内核(如果主板上有超过1个CPU,则分配给物理CPU)?真正的多线程=多个独立的执行线程利用多个内核提供的资源(不仅仅是一个内核)。假多线程=线程模拟多线程环境,不依赖任何native操作系统功能。 最佳答案 1)DoPython,Ruby,orHaskellsupporttruemultithreading?这与语言无关。这是硬件的问题(如果机器只有1

php - 如何在 Haskell 或 Python 中翻译这个数学公式? (已用 PHP 翻译)

我正在尝试将数学公式转换为PHP代码。您可以在此处查看已接受答案中的公式:ApplyingaMathFormulainamoreelegantway(maybearecursivecallwoulddothetrick).我不是专业的编码员,所以我正在尽力翻译它,但我的技能有限,并且遇到了一些问题。让我们开始吧。有一个包含玩家堆栈的向量:我认为二维数组应该在这里完成工作。我会添加一个key来识别每个玩家。$array=array(1=>2000,3=>5000...);现在他想创建一个值矩阵,我进行了研究,发现了一个名为Math_Matrix的PEAR包,安装了它,但我想知道如何创建这

python - Project Euler - 这个haskell代码怎么这么快?

我正在处理项目euler中的问题401,我在python中编写了我的解决方案,但它需要几天时间才能运行,显然我需要加快速度或使用不同的方法。我在Haskell中遇到了一个看起来与我的python解决方案几乎相同但几乎瞬间完成的解决方案。有人能解释一下它怎么这么快吗?(我不是在寻求帮助或解决问题401)divisorsn=filter(\x->n`mod`x==0)[1..(n`div`2)]++[n]sigma2n=sum$map(\x->x*x)(divisorsn)sigma2bign=sum$map(sigma2)[1..n]lets2b=sigma2big10^15putStr

python - 是否有与 Haskell 'let' 等效的 Python

是否有与Haskell'let'表达式等效的Python表达式,可以让我编写如下内容:list2=[let(name,size)=lookup(productId)in(barcode(productId),metric(size))forproductIdinlist]如果不是,那么最易读的替代方案是什么?添加以澄清let语法:x=let(name,size)=lookup(productId)in(barcode(productId),metric(size))等价于(name,size)=lookup(productId)x=(barcode(productId),metric(

python - 从 Python 调用 Haskell 函数

我想使用Python中的一些Haskell库(例如Darcs、Pandoc),但Python中似乎没有直接的外部函数接口(interface)到Haskell。有什么办法吗? 最佳答案 如果你可以让你的Python代码调用C,你就可以调用已经通过FFI导出的Haskell函数。另一种方法是编写标准IPC接口(interface),在darcs和pandoc的情况下,只是将它们称为普通可执行文件并解析它们的输出可能是可行的方法。关于在Haskell端自动生成无聊、重复、FFI和编码代码,我建议c2hs,它允许您基于现有的C接口(int

java - Haskell 与 JVM 性能对比

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭10年前。我想为一个网站编写一个后端系统(它将是一个自定义的搜索式服务)。它需要高度并发和快速。考虑到我对并发的期望,我计划使用Haskell或Scala等函数式语言。不过,速度也是重中之重。http://benchmarksgame.alioth.debian.org结果似乎表明Java几乎与C/C++一样快,Scala通常相当不错,但对于大多数任务,Has

c++ - Haskell 风格 "Maybe"类型和 C++11 中的 *chaining*

在我的工作项目中,我反复发现自己需要Haskell风格的Maybe(尤其是Maybe链接)。例如。来自客户的提款请求,我们得到客户ID...在缓存中查找客户...如果找到客户...查找她的储蓄账户...如果有账户...提款...随时在这个链中,如果查找失败,什么都不做,返回一个失败。我的链很大...有时长达6...所以这是我在C++0x中对Haskell.Data.Maybe的滑动...(注意...这个如果我停止使用可变参数模板,应该在C++中工作)。我已经为带一个参数的自由函数或不带参数的成员函数制定了链接,我对接口(interface)很满意。但是,对于采用多个参数的函数.....