作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到 Ruby 1.9 有一个新的枚举器,slice_before
. API docs很神秘。
特别是我对采用 initial_state
的变化感到困惑值(value)。
例如,每当元素的累进总和超过某个值时,我想将带有数字的数组拆分为子数组:
a = [1,2,0,1,2,3]
a.slice_before(0) do |elem, sum|
sum += elem
sum > 3
end.to_a
[[1,2,0], [1,2], [3]]
inject
中的“携带”或“备忘录”但这似乎并不成功。
TypeError: can't dup Fixnum
from (irb):43:in `each'
slice_before
不接受
Fixnum
作为初始值。为什么? ruby 错误?。
sum = 0
a.slice_before do |elem|
sum += elem
sum > 3 && sum = 0
end.to_a
# => [[1, 2, 0], [1, 2], [3]]
initial_state
也是如此可用于此目的,或不?文档中的示例似乎主要是关于文本处理的。我正在使用 Ruby 1.9.3p194。
最佳答案
initial_state
通常是存储键值对的状态哈希。
要使用状态哈希编写代码:
a.slice_before(sum: 0) do |elem, state|
state[:sum] += elem
if state[:sum] > 3
# Reset the sum, so we'll get more elements
state[:sum] = 0
end
end.to_a
initial_state
必须回复
#dup
方法,因为它在每个循环中重复。
Fixnum
不起作用是因为它不响应
#dup
. Fixnum 不起作用,因为它无法跟踪每个循环的状态。
关于ruby-1.9 - 如何在 Ruby 1.9 中使用 "slice_before"和 initial_state?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11552179/
在 PTB 语言模型教程中 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/rnn/ptb/ptb_wor
我正在尝试在 Keras 中构建一个堆叠的双向 LSTM seq2seq 模型,但是在将编码器的输出状态传递到解码器的输入状态时遇到了一个问题。看起来应该可以基于此 pull request .最终我
我看到 Ruby 1.9 有一个新的枚举器,slice_before . API docs很神秘。 特别是我对采用 initial_state 的变化感到困惑值(value)。 例如,每当元素的累进总
我是一名优秀的程序员,十分优秀!