我在设计汽车预订申请时需要一些帮助.有一个包含汽车信息的文件(标题,型号,品牌,信息等)
我遇到的问题是:
如何存储可用的预订日期?(我想我可以在数组中使用嵌套的自由日期范围对象)
如何每天存储价格(每天可以单独购买价格)?
预订日和价格可能经常变化.所以第三个问题是:"如何巧妙地(部分地)更新它们,所以我不应该阅读文档,然后存储它".我正在使用update api(http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-update.html)查看脚本解决方案,但它看起来很难看.也许有其他方法?
谢谢,亚历克斯
我想优化以下代码以简洁.
x1.each { |x|
x2.each { |y|
....
xN.each { |z|
yield {}.merge(x).merge(y)...... merge(z)
}
}
}
Run Code Online (Sandbox Code Playgroud)
假设x1, x2, ..., xN是Enumerator对象.
Arrays,但不能作为Enumerators
我试过这个但没有成功:
[x1, x2, ..., xN].reduce(:product).map { |x| x.reduce :merge }
Run Code Online (Sandbox Code Playgroud)
有什么建议?
UPDATE
目前解决了:
[x1, x2, ..., xN].map(:to_a).reduce(:product).map { |x|
yield x.flatten.reduce(:merge)
}
Run Code Online (Sandbox Code Playgroud) 让我有懒惰的序列:s1, s2, s3, ..., sN,用非降序数字,例如:
s1 = [1, 1, 2, 3, 3, 3, 4, .....]
s2 = [1, 2, 2, 2, 2, 2, 3, 3, 4, ....]
s3 = [1, 2, 3, 3, 3, 3, 4, 4, 4, ....]
我想做的是 - 合并它,按类似项目分组并使用某些功能处理它,例如生成元组列表(数字,计数)
对于我的情况:
merge(s1, s2, s3) 应该生成 [ [1, 4], [2, 6], [3, 9], [4, 5], .... ]
是否有任何宝石等来处理这些序列
在我测试时,当我创建它们时,每个新代理都使用一个单独的线程.几个代理可以在一个线程中运行吗?
我的想法是创建10K +轻量级代理(如erlang中的actor),这对Clojure来说是一个挑战吗?
谢谢
ruby ×2
actor ×1
agents ×1
clojure ×1
concurrency ×1
enumerator ×1
merging-data ×1
optimization ×1
stream ×1