小编Bre*_*hio的帖子

为什么Haskell类型的签名声明有多个箭头?

对不起,措辞很差,但很难描述.

我想我会跳到这个例子:

add                     :: Integer -> Integer -> Integer
add x y                 =  x + y
Run Code Online (Sandbox Code Playgroud)

为什么:

:: Integer -> Integer -> Integer
Run Code Online (Sandbox Code Playgroud)

代替:

:: Integer, Integer -> Integer
Run Code Online (Sandbox Code Playgroud)

箭头是" 函数类型映射运算符 ",而不是某种分隔符,不是吗?

syntax haskell types

17
推荐指数
3
解决办法
1757
查看次数

什么可能导致git中的数据丢失?

我不想在git中蠢蠢欲动,我想像他们在FaceBook上说的那样"快速行动并打破局面".实际上,我认为这几乎是版本控制的重点.我真正需要注意什么?

我猜git rm,尤其是-r可能很危险.

什么时候分支,什么导致覆盖?

git

11
推荐指数
2
解决办法
2391
查看次数

如何将PuLP中的弹性子问题用作约束?

在Python PuLP中,线性编程约束可以变成弹性子问题.

http://www.coin-or.org/PuLP/pulp.html?highlight=lpsum#elastic-constraints

解决子问题可以优化距目标值的距离.

当然,目标值是这个子问题的最佳解决方案,但弹性化的全部意义在于我们认为这种解决方案可能是不可行的.

如何将子问题纳入整体问题?我尝试按照添加约束的方式将其添加到问题中,这会引发类型错误.我尝试将它放在目标函数中,这也不起作用.

我在上面的文档或此处托管的示例中找不到任何内容:

https://code.google.com/p/pulp-or/wiki/OptimisationWithPuLP?tm=6

这是我制定的子问题:

capacity = LpConstraint(e=lpSum([ x[m][n] * len(n.items) for n in N ]),
    sense=-1, rhs=30, name=str(random.random()))
stretch_proportion = 30/50
elasticCapacity = capacity.makeElasticSubProblem(penalty=50,
    proportionFreeBoundList=[1,stretch_proportion])
Run Code Online (Sandbox Code Playgroud)

以下是我认为必须将其纳入LP目标的最接近的事情:

def sub(m):
    capacity = LpConstraint(e=lpSum([ x[m][n] * len(n.items) for n in N ]),
        sense=-1, rhs=30, name=str(random.random()))
    stretch_proportion = 30/50
    elasticCapacity = capacity.makeElasticSubProblem(penalty=50,
        proportionFreeBoundList=[1,stretch_proportion])
    elasticCapacity.solve()
    return elasticCapacity.isViolated()
Run Code Online (Sandbox Code Playgroud)

...

prob += lpSum( [ x[m][n] * reduce(op.add, map(D2, [i.l for i in n.items], [j.l for j in n.items]))\
    for n in N …
Run Code Online (Sandbox Code Playgroud)

python linear-programming combinatorics cplex pulp

9
推荐指数
1
解决办法
1338
查看次数

Haskell计算Ackermann 4 1的速度很慢?

这是7个月前的一个老问题,当时堆栈溢出器同意Haskell计算Ackermann函数的低效率是由于编译器错误造成的.

Ackermann与Haskell/GHC的效率非常低

7个月后,这似乎是固定的.似乎ack使用线性内存运行,但它运行速度非常慢.

main = print (ack 4 1)
-- Ackermann function
ack 0 n = n + 1
ack m 0 = ack (m-1) 1
ack m n = ack (m-1) (ack m (n - 1))

$ time ./ack
65533

>real   8m53.274s
>user   8m47.313s
>sys    0m4.868s


Processor  2.8 GHz Intel Core i7
Memory  8 GB 1333 MHz DDR3
Software  Mac OS X Lion 10.7.5 (11G63)
Run Code Online (Sandbox Code Playgroud)

我只是要求对此有任何见解.更详细的将得到投票.请记住,我是函数式编程的新手,甚至关于尾递归与常规递归的简单评论也会受到赞赏和赞成.

haskell ghc ackermann

5
推荐指数
1
解决办法
481
查看次数