草庐IT

haskell-tagsoup

全部标签

Java 接口(interface)和 Haskell 类型类 : differences and similarities?

在学习Haskell时,我注意到它的type类,这应该是源自Haskell的一项伟大发明。但是,在theWikipediapageontypeclass:Theprogrammerdefinesatypeclassbyspecifyingasetoffunctionorconstantnames,togetherwiththeirrespectivetypes,thatmustexistforeverytypethatbelongstotheclass.在我看来,这与Java的接口(interface)很接近(引用Wikipedia'sInterface(Java)page):Anin

haskell - 使用 cabal 和 ghc 构建运行时标志

我有一个用Haskell编写的程序,打算用GHC编译。该程序在多核上的扩展性非常好,因此启用多线程非常重要。在我的.cabal文件中,我添加了ghc-options:-O3-threaded以与线程运行时链接。问题在于,使用这种方法,用户需要使用foo+RTS-N运行程序,这似乎有点神秘,而且对用户不太友好。如何告诉cabal/ghc对用户不可见地启用这些运行时标志?我读过--with-rtsopts,但是当我尝试使用它时,GHC(7.0.3)只是吐出unrecognizedflag。 最佳答案 标志是-with-rtsopts,而

haskell - 使用 Haskell 的工程符号

是否存在提供工程符号格式(作为字符串)的现有Haskell函数?如果不是,我读到printf可以通过向PrintfArg添加一个实例来扩展。您认为这是一个好的解决方案吗?我所说的工程符号是指指数是3的倍数的指数符号。 最佳答案 经过一番研究,我设法得到了我想要的。只需几步即可获得工程格式的功能:1.将指数与尾数分离有必要将尾数中的指数分开。decodeFloat函数(由base提供)解码float并返回尾数和指数2的幂次(mant2*2^ex2).2。获取以正确底数表示的尾数和指数需要10次方的转换。这就是这个函数的作用。decom

haskell - 将 NominalDiffTime 打印为小时、分钟和秒

我很惊讶以前没有人问过这个问题,但是...如何将NominalDiffTime简单地打印为小时、分钟和秒?(可能还有天,如果它恰好有那么长......)由于未知原因,Show实例打印总秒数,这显然是无用的。(13055.22秒有多长?是几分钟?一天?半小时?我不知道!)有FormatTime类,但不适用于NominalDiffTime。您似乎可以使用floor方法将总秒数作为实际的数字,但是您如何处理它呢?据我所知,DiffTime也无济于事。必须有一种方法可以合理地打印持续时间... 最佳答案 您可以通过TimeOfDay打印一个

string - 如何在 Haskell 中填充整数的字符串表示形式?

我正在寻找一种惯用的(可能是内置的)方法,在左侧用零填充整数的字符串表示形式。在我的例子中,整数永远不会超过99,所以fixr=iflengthr==1then'0':relserfix.show[1..15]有效。但我希望有更好的方法。如何在Haskell中填充整数的字符串表示形式? 最佳答案 printf样式格式可通过Text.Printf模块获得:importText.Printffmtx=printf"%02d"x或者特殊情况下0的格式:fmt0=""fmtx=printf"%02d"x

haskell - 如何让haskell输出不是科学计数法的数字?

我有一些项目想要划分为多个桶,这样每个桶都比上一个大一些。items=500chunks=5increment=0.20{-findtheproportions-}sizes=takechunks(iterate(+increment)1)base=sumsizes/itemsbuckets=map(base*)sizesmain=printbuckets我确信有一种数学上更优雅的方法可以做到这一点,但这不是我的问题。最后一步总是以科学计数法打印出来。如何获得纯十进制输出?我看过Numeric包,但我的速度很快。 最佳答案 >put

Haskell 日期解析和格式化

我一直在使用Haskell的Date.Time模块来解析像12-4-1999或1-31-1999这样的日期。我试过了:parseDay::String->DayparseDays=readTimedefaultTimeLocale"%m%d%Y"s而且我认为它希望我的月份和日期正好有两位数,而不是1或2...这样做的正确方法是什么?另外,我想以这种格式打印出我的Day:12/4/1999Haskell方法是什么?感谢您的帮助。 最佳答案 您可以使用Data.Time.Format中的函数来读取日期。我在下面包含了一个简单的程序,它以

ruby - 什么相当于 Haskell 中 Ruby 的 pnormaldist 统计函数?

如下所示:http://www.evanmiller.org/how-not-to-sort-by-average-rating.html这是在Statistics2中实现的Ruby代码本身图书馆:#inverseofnormaldistribution([2])#Pr((-\infty,x])=qn->xdefpnormaldist(qn)b=[1.570796288,0.03706987906,-0.8364353589e-3,-0.2250947176e-3,0.6841218299e-5,0.5824238515e-5,-0.104527497e-5,0.8360937017e

c++ - 混合 Haskell 和 C++

如果您有可能拥有一个同时使用Haskell和C++的应用程序。你会让Haskell管理哪些层,让C++管理哪些层?有没有人做过这样的关联,(肯定)?(Haskell网站告诉我们这真的很简单,因为Haskell有一种模式,可以通过gcc在C中编译)起初我认为我会将所有I/O操作保留在C++层中。以及GUI管理。这是一个非常模糊的问题,但是当我计划学习Haskell时,我正在考虑将一些工作委派给Haskell代码(我在实际编码中学习),我想选择一些我会看到Haskell的部分好处。 最佳答案 Haskell的好处是它允许您使用强大的抽象

c++ - 混合 Haskell 和 C++

如果您有可能拥有一个同时使用Haskell和C++的应用程序。你会让Haskell管理哪些层,让C++管理哪些层?有没有人做过这样的关联,(肯定)?(Haskell网站告诉我们这真的很简单,因为Haskell有一种模式,可以通过gcc在C中编译)起初我认为我会将所有I/O操作保留在C++层中。以及GUI管理。这是一个非常模糊的问题,但是当我计划学习Haskell时,我正在考虑将一些工作委派给Haskell代码(我在实际编码中学习),我想选择一些我会看到Haskell的部分好处。 最佳答案 Haskell的好处是它允许您使用强大的抽象