小编Hel*_*lix的帖子

J中的笛卡儿积

我正在尝试为J中的生命游戏功能重现APL代码.在搜索"APL中的生命游戏"之后,可以找到解释此代码的YouTube视频.目前我有一个矩阵R,它是:

0 0 0 0 0 0 0
0 0 0 1 1 0 0
0 0 1 1 0 0 0
0 0 0 1 0 0 0
0 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)

我写了J代码,它生成了邻接列表(相邻方块中的活细胞数),如下所示:

+/ ((#:i.4),-(#:1+i.2),(1 _1),.(_1 1)) |. R
Run Code Online (Sandbox Code Playgroud)

并产生:

0 0 1 2 2 1 0
0 1 3 4 3 1 0
0 1 4 5 3 0 0
0 1 3 2 1 0 0
0 0 1 1 0 0 …
Run Code Online (Sandbox Code Playgroud)

j cartesian-product

5
推荐指数
3
解决办法
321
查看次数

pmap对于玩具示例来说很慢

我正在测试Julia中的并行性,看看我的机器上是否有加速(我正在选择一种语言来实现新的算法).我不想花费大量时间编写一个巨大的例子,所以我在发布版Julia 0.4.5(Mac OS X和双核)上进行了以下测试:

$ julia -p2

julia> @everywhere f(x) = x^2 + 10
julia> @time map(f, 1:10000000)
julia> @time pmap(f, 1:10000000)
Run Code Online (Sandbox Code Playgroud)

pmap显着慢于map(> 20x)并且分配超过内存的10倍.我究竟做错了什么?

谢谢.

parallel-processing pmap julia

4
推荐指数
1
解决办法
321
查看次数

在Haskell中使用列表生成器来实现内存高效的代码

我想得到一个编写内存有效的haskell代码的句柄.我碰到的一件事是,没有简单的方法来制作python样式列表生成器/迭代器(我能找到).

小例子:

在不使用闭合形式公式的情况下查找1到100000000之间的整数之和.

Python可以通过最少的内存使用来快速完成sum(xrange(100000000).在Haskell中,模拟将是sum [1..100000000].然而,这耗尽了大量内存.我认为使用foldl或者foldr会很好,但即使使用大量内存并且比python慢​​.有什么建议?

performance haskell list

4
推荐指数
1
解决办法
115
查看次数