ghc

    36热度

    3回答

    我只是好奇Haskell列表的一些确切实现细节(GHC特定的答案很好) - 他们是天真的链表,还是他们有任何特殊的优化?更具体地说: 是否length和(!!)(例如)必须遍历列表? 如果是这样,他们的值是以任何方式缓存(即,如果我打电话length两次,它将不得不迭代两次)? 访问列表后面是否涉及迭代整个列表? 记忆无限的列表和列表解析吗? (即,对于fib = 1:1:zipWith (+)

    6热度

    6回答

    我最近在运行OS X 10.5.8的英特尔MacBook上安装了(从二进制安装程序)GHC 6.12和Haskell Platform 2010.1.0.1,最初,一切正常。 编辑:我不得不从源安装cabal,alex和happy,但那,一切似乎工作正常。然而,我发现,如果我用cabal install安装一个软件包依赖于一个MacPorts的库(如,cabal install --extra-l

    2热度

    2回答

    我已经使用cabal安装了GD包(http://hackage.haskell.org/package/gd-3000.4.0)。当我尝试编译它使用GD的节目,我收到一个错误: [[email protected]:~/jpp/haskell]$ ghc gd.hs compilation IS NOT required gd.o: In function `sV8_info': (.tex

    7热度

    3回答

    我正在扩展BaseAdapter来制作自定义列表视图行。每当用户在该行持有该行时都会打开一个上下文菜单,并提示他是否要删除该行。但是,如何删除该行?哈希映射只是测试数据。 private MyListAdapter myListAdapter; private ArrayList<HashMap<String, String>> items; @Override public void o

    0热度

    4回答

    我需要一个将字符串作为参数的函数,然后检查是否设置了与该字符串命名相同的变量。 这工作... $foo = 'foosuccess'; $property = 'foo'; if(isset($$property)){ echo $$property; } 这不,因为测试()内,$$ property2是错误的范围。 $huh = 'huhsuccess'; $huh = test(

    8热度

    1回答

    当分析GHC中编写的Haskell程序时,类型类函数的名称在.prof文件中发生错位,以区分一个实例与另一个实例的实现。我该如何取消这些名称以找出它是哪种类型的实例? 例如,假设我有以下计划,其中各类Fast和Slow都实现Show: import Data.List (foldl') sum' = foldl' (+) 0 data Fast = Fast instance Show

    2热度

    3回答

    最近,当我在Hackage上发现ghc 6.12/6.10的良好源码包时,我不得不对cabal文件做一些小的或重大的修改,以使这些包能够在windows下工作。 除了叉和合并我的修补程序与github,什么似乎是最好的方式/足够好的做法将这些修改后的版本添加到只有一个基本的haskell平台安装的几个其他窗口框? 我应该更喜欢如果我以某种方式可以使用cabal-install,因为这是通常使用的。

    2热度

    1回答

    G'day guys, 尝试完成一些我正在做的作业,并且遇到了一个问题,我试图在接受多个输入的函数上应用地图。 所以在情况下,我使用PROCESSLIST F(X:XS)=地图accelerateList˚FXS X XS PROCESSLIST被赋予一个浮点值(f)和其分类成另一个列表 列表 加速列表采用浮动值(f)列表和列表对象通过它返回另一个列表对象 我知道我的加速列表代码是正确的,但我不能

    2热度

    1回答

    我是一名初学者Haskell程序员。我在过去的六个月里写了一些有用的代码。我想从它发布一个图书馆。代码将使用系统安装cabal作为任何Haskell库。一个库与cabal一起发布了一个元数据文件,其中有一个来自库及其版本的逻辑谓词。 开发人员通常使用一个集合库。它繁琐地关心一组集合库。如何知道我的库是成功编译还是不是针对某些子库?

    16热度

    3回答

    我不知道为什么 Prelude> head $ reverse $ [1..10000000] ++ [99] 99 不会导致堆栈溢出错误。在序幕++似乎直截了当和非尾递归: (++) :: [a] -> [a] -> [a] (++) [] ys = ys (++) (x:xs) ys = x : xs ++ ys 编辑:起初,我以为这个问题有什么做的方式++中拉开序幕的定义,尤