不是编程问题,但我第一次看到这样的东西.
UNR 1.6(基于Ubuntu 10.04)安装了6.12.1版本的GHC.
因此,为了构建cabal-install-0.8.2,我必须安装
parsec,mtl,network和zlib的libghc6-包.
然后,在启动'sh ./bootstrap.sh'后,我得到:
检查已安装的ghc-6.12.1 ...
parsec 软件包已经安装,版本正常.
网络已经安装,版本还可以.
Cabal已经安装,版本还可以.
mtl已经安装,版本还可以.
已安装HTTP且版本正常.
zlib已经安装,版本还可以.
[1/1]编译Main(Setup.hs,Setup.o)
链接设置...
配置cabal-install-0.8.2 ... cabal-install-0.8.2的
预处理可执行文件...
构建cabal-install- 0.8.2 ...
[1/40]编译Distribution.Client.BuildReports.Types(Distribution/Client/BuildReports/Types.hs,dist/build/cabal/cabal-tmp/Distribution/Client/BuildReports/Types.o)
[2 of 40]编译Distribution.Client.Utils(Distribution/Client/Utils.hs,dist/build/cabal/cabal-tmp/Distribution/Client/Utils.o)
...关于未使用addPackageExcludeConstraint和响应的两个警告......
[39/40]编译Distribution.Client.Install(Distribution/Client/Install.hs,dist/build/cabal/cabal-tmp/Distribution/Client/Install.o)
[40 of 40]编译Main(Main.hs, dist/build/cabal/cabal-tmp/Main.o)
链接dist/build/cabal/cabal ...
collect2:ld以信号9终止[Processusarrêté]
cabal-install bootstrap期间出错:
构建cabal-install软件包失败
在链接和收集2之间(大约一分钟左右),我的硬盘驱动器的LED闪烁,
就像写入或读取了大量文件一样.
我不知道它是否相关,但这里是依赖项的版本
Cabal-1.8.0.2
HTTP-4000.0.6
mtl-1.1.0.2
network-2.2.1.7
parsec-2.1.0.1
zlib-0.5.2.0
假设2个地图
import qualified Data.Map as M
sparse1, sparse2 :: M.Map Int Float
sparse1 = M.fromList [(1,2.0),(10,3),(12,5),(100,7),(102,11)]
sparse2 = M.fromList [(2,13.0),(11,17),(12,19),(101,23),(102,29)]
Run Code Online (Sandbox Code Playgroud)
你如何定义一个优雅的功能
combi :: M.Map Int Float -> M.Map Int Float -> Float
Run Code Online (Sandbox Code Playgroud)
这样组合sparse1 sparse2返回414.0(= 5*19 + 11*29),因为12和102是这两个映射的唯一公共密钥?有一个优雅(简单和有效)的功能列表,因为这些将严格排序:
combiList xs ys = cL xs ys 0
cL [] _ acc = acc
cL _ [] acc = acc
cL (x@(k,r):xs) (y@(k',r'):ys) acc
| k < k' = cL xs (y:ys) acc
| k == k' = cL xs ys (acc+r*r')
| …Run Code Online (Sandbox Code Playgroud)