小编ham*_*mar的帖子

使用GHC,在用户空间安装GMP的cabal

我一直在尝试安装Haskell平台,并cabal-install在没有安装GNU Multi-Precision软件包(GMP)的系统上在用户空间的Linux上安装.

我设法安装了GHC-6.12.1并且GHCi通过设置LB_LIBRARY_PATH指向我安装GMP的lib目录cabal-install来工作,但是在下一步遇到问题,开始工作.它一直试图(静态地)链接到GMP.

这失败是因为GMP没有安装在系统中并且ld没有找到库的位置,并且没有环境变量(我知道)可以告诉ld在哪里可以找到用户安装的GMP,以及(显然)没有办法告诉配置Cabal提供相关-L标志.

经过多次徒劳无功的搜索和黑客攻击后,我找到了一个荒谬的简单想法,即安装我自己的ldshell脚本,调用ld具有相应-L标志的系统.

这是shell脚本101,当然:

#!/bin/sh
/usr/bin/ld -L$HOME/gnu/lib "$@"
Run Code Online (Sandbox Code Playgroud)

有了这个脚本安装在我PATH之前的目录中/usr/bin所有的问题似乎已经消失了.

haskell gmp ghc cabal haskell-platform

8
推荐指数
1
解决办法
1174
查看次数

C#中的无锁优先级队列

我最近一直在搜索有关如何在C#中构建无锁优先级队列的信息.我甚至还没有找到任何语言的实现,或者关于这个问题的正确论文.我发现有几篇论文似乎是复制品,或者至少引用了一篇特定的论文,这篇论文实际上并不是一篇关于无锁优先级队列的论文,尽管它的名字不同; 它实际上是一个使用细粒度锁的优先级队列上的文章.

我从其他地方收到的回复包括"使用单个帖子"和"你不需要它免费锁定"和"这是不可能的".所有这三个答案都是不正确的.

如果有人对此有一些信息,我将不胜感激.

.net c# priority-queue

8
推荐指数
1
解决办法
2004
查看次数

如何找出在MVC3中调用我的视图的控制器操作的名称?

我想在我的视图中编写一些逻辑,这取决于用于调用视图的控制器操作的名称.有没有办法可以找到这个名字.

希望有人可以帮助我.请注意,它是我正在使用的MVC3.

asp.net-mvc asp.net-mvc-3

8
推荐指数
2
解决办法
3388
查看次数

Scala REPL~20秒启动 - 这是正常的吗?

我在Ubuntu 11.04上使用Scala 2.9.0.final.从命令行启动scala大约需要20秒才会出现提示.

我意识到我应该期待一些延迟,因为它必须引导编译器JAR文件,但我很难相信它应该是20秒 - 我担心我可能有一些配置错误.

编辑

所以我尝试了jstack,它提供了一个超出我头脑的长输出.我看到一个线程正在等待互斥锁.但看看以下的输出time:

21.96s user 0.66s system 135% cpu 16.711 total
Run Code Online (Sandbox Code Playgroud)

似乎它在两个内核上花费了相当多的周期...所以也许它不仅仅是在那个时候阻塞互斥锁?

2011-07-28 11:45:02
Full thread dump OpenJDK 64-Bit Server VM (20.0-b11 mixed mode):

"Attach Listener" daemon prio=10 tid=0x00000000023ea000 nid=0x19a9 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Thread-0" prio=10 tid=0x00007f7768304800 nid=0x19a8 runnable [0x00007f776cd92000]
   java.lang.Thread.State: RUNNABLE
    at scala.collection.generic.Growable$$anonfun$$plus$plus$eq$1.<init>(Growable.scala:48)
    at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:48)
    at scala.collection.mutable.ListBuffer.$plus$plus$eq(ListBuffer.scala:128)
    at scala.collection.TraversableOnce$class.toList(TraversableOnce.scala:242)
    at scala.collection.mutable.WrappedArray.toList(WrappedArray.scala:33)
    at scala.collection.immutable.List$.apply(List.scala:434)
    at scala.Option.toList(Option.scala:231)
    at scala.tools.nsc.util.DirectoryClassPath.asURLs(ClassPath.scala:321)
    at scala.tools.nsc.util.ClassPath.sortString(ClassPath.scala:284)
    at scala.tools.nsc.util.ClassPath.hashCode(ClassPath.scala:289)
    at scala.collection.mutable.FlatHashTable$HashUtils$class.elemHashCode(FlatHashTable.scala:349)
    at scala.collection.mutable.HashSet.elemHashCode(HashSet.scala:39)
    at scala.collection.mutable.FlatHashTable$class.containsEntry(FlatHashTable.scala:109)
    at scala.collection.mutable.HashSet.containsEntry(HashSet.scala:39)
    at …
Run Code Online (Sandbox Code Playgroud)

scala read-eval-print-loop

8
推荐指数
1
解决办法
610
查看次数

C是否有提供优先级队列的库?

C是否有提供优先级队列的库?我对通常安装在Linux机器上的开源库感兴趣,这是一种glib,它提供了一些数据结构.

c linux priority-queue

8
推荐指数
1
解决办法
5079
查看次数

Scala标准相当于

是否有Scala(或Java,我猜)相当于标准?我不仅仅是在讨论基准测试库:请查看HTML结果的标准.

benchmarking haskell scala haskell-criterion

8
推荐指数
1
解决办法
296
查看次数

如何将两个过程组合成一个?

只是想知道是否有一个语法快捷方式,用于获取两个proc并加入它们,以便将一个的输出传递给另一个,相当于:

a = ->(x) { x + 1 }
b = ->(x) { x * 10 }
c = ->(x) { b.( a.( x ) ) }
Run Code Online (Sandbox Code Playgroud)

有喜欢的东西时,这会派上用场method(:abc).to_proc,并:xyz.to_proc

ruby function-composition

8
推荐指数
1
解决办法
1606
查看次数

Adding type constraints to the context of instance declarations in Haskell

I am trying to represent weighted edges. I eventually want to have OutE to be an instance of Eq and Ord, with the constraint that etype is an instance of Eq and Ord. Assume I have following file as temp.hs:

data (Ord etype)=> OutE vtype etype = OutE {destVertex:: vtype, edgeValue::etype}

applyFunBy accessor ordfun = (\x y -> (ordfun (accessor x) (accessor y)))

instance Eq (OutE vtype etype) where
    --(==) :: Ord etype => (OutE vtype etype) -> (OutE vtype …
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming instance typeclass

7
推荐指数
1
解决办法
4747
查看次数

在Haskell中列出理解

我一直在使用以下代码来获取预定数量的所有组合:

getList x = [ [a,b,c] | a <- [1..x], b <- [1..x], c <- [1..x]]
Run Code Online (Sandbox Code Playgroud)

这开始很好,但我希望扩展程序来处理非常大的列表,我一直认为必须有更好的方法来做到这一点.我如何创建一个与此处采用相同参数x的函数,以及该子列表具有多少项的另一个参数.对于四个项目,我会去修改代码:

getList x = [ [a,b,c,d] | a <- [1..x], b <- [1..x], c <- [1..x], d <- [1..x]]
Run Code Online (Sandbox Code Playgroud)

它不需要是列表理解.感谢您的任何帮助.

haskell list-comprehension

7
推荐指数
1
解决办法
842
查看次数

逻辑运算符优先于NAND,NOR,XNOR

我在网上搜索过,但我找不到解决这个问题的办法.

什么是运营商的逻辑优先NAND,NORXNOR

我的意思是,以表达为例

A AND B NAND C
Run Code Online (Sandbox Code Playgroud)

应该首先评估哪个运营商?
显然,NAND可以翻译为NOT-AND(作为NORNOT-ORXNORNOT-XOR),但

(A AND B) NAND C != A AND (B NAND C) = A AND NOT(B AND C)
Run Code Online (Sandbox Code Playgroud)

根据我的研究,这样的表达式没有明确的优先级,所以我认为最简单的解决方案是根据运算符在表达式中出现的顺序来评估运算符,但我可能错了.

有什么建议?

logic operators operator-precedence

7
推荐指数
1
解决办法
8947
查看次数