小编fja*_*rri的帖子

在Julia中创建Haskell的Either类型

我想Data.Either在Julia的Haskell中创建一个类型的模拟.以下适用于v0.5:

immutable Either{T, S}
    left :: Nullable{T}
    right :: Nullable{S}
end

either{T, S}(::Type{T}, ::Type{S}, value::T) = Either(Nullable{T}(value), Nullable{S}())
either{T, S}(::Type{T}, ::Type{S}, value::S) = Either(Nullable{T}(), Nullable{S}(value))

a = either(Int64, String, 1)
b = either(Int64, String, "a")

println(a)
println(b)
Run Code Online (Sandbox Code Playgroud)

我的问题是:是否可以使以下结构工作:

a = Either{Int64, String}(1)
b = Either{Int64, String}("a")
Run Code Online (Sandbox Code Playgroud)

(这种方式不需要额外的构造函数).

似乎应该有足够的信息来构造对象,但到目前为止,我无法说服编译器接受我尝试的任何变体; 例如写作

immutable Either{T, S}
    left :: Nullable{T}
    right :: Nullable{S}

    Either(value::T) = Either(Nullable{T}(value), Nullable{S}())
    Either(value::S) = Either(Nullable{T}(), Nullable{S}(value))
end
Run Code Online (Sandbox Code Playgroud)

结果是

ERROR: LoadError: MethodError: no method matching Either{T,S}(::Nullable{Int64}, ::Nullable{String})
Run Code Online (Sandbox Code Playgroud)

julia

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

基于numpy的计算的低效多处理

我正在尝试并行化一些numpy在Python multiprocessing模块的帮助下使用的计算.考虑这个简化的例子:

import time
import numpy

from multiprocessing import Pool

def test_func(i):

    a = numpy.random.normal(size=1000000)
    b = numpy.random.normal(size=1000000)

    for i in range(2000):
        a = a + b
        b = a - b
        a = a - b

    return 1

t1 = time.time()
test_func(0)
single_time = time.time() - t1
print("Single time:", single_time)

n_par = 4
pool = Pool()

t1 = time.time()
results_async = [
    pool.apply_async(test_func, [i])
    for i in range(n_par)]
results = [r.get() for r in results_async]
multicore_time …
Run Code Online (Sandbox Code Playgroud)

python numpy multiprocessing

6
推荐指数
1
解决办法
891
查看次数

在动态权重图中找到最短路径

我有以下场景:

我想找到两个城市之间的航班:A和B.没有从A到B的直飞航班; 所以,我需要找到成本最低的转机航班.

此外,机票不固定.这取决于我购买它的时间; 例如,如果我早买它,价格会更便宜.

而且,时间也影响了飞行; 例如,5月31日上午7点只有一班从C到D的航班.如果飞机在5月31日上午8点从A飞到C,我会错过航班.因此,我将城市表示为图的顶点.如果从A到B的航班有效,则路径AB存在.权重将是机票费.

对我的问题有什么想法或建议吗?

谢谢

algorithm graph shortest-path graph-algorithm

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