Tag: 递归

什么是递归?它是如何工作的?

有人可以解释一下究竟什么是递归(以及它在Ruby中是如何工作的,如果这不是太多要求)。 我遇到了一个依赖递归的冗长代码片段,它使我感到困惑(我现在丢失它,并不完全相关)。

Ruby中的Fibonacci序列(递归)

我正在尝试实现以下函数,但它一直给我的stack level too deep (SystemStackError)错误。 任何想法可能是什么问题? def fibonacci( n ) [ n ] if ( 0..1 ).include? n ( fibonacci( n – 1 ) + fibonacci( n – 2 ) ) if n > 1 end puts fibonacci( 5 )

使用Ruby / Rails将嵌套哈希展平为单个哈希

我想在不同深度的哈希中“扁平化”(不是经典意义上的.flatten ),如下所示: { :foo => “bar”, :hello => { :world => “Hello World”, :bro => “What’s up dude?”, }, :a => { :b => { :c => “d” } } } 下到一个单一级别的哈希,并且所有嵌套的键合并为一个字符串,因此它将成为: { :foo => “bar”, :”hello.world” => “Hello World”, :”hello.bro” => “What’s up dude?”, :”abc” => “d” } 但我想不出一个好办法。 它有点像Rails添加到deep_ helper函数,但不完全相同。 我知道递归将是这里的方式,但我从未在Ruby中编写过递归函数。

迭代Ruby中深度嵌套的哈希级别

所以我有一个哈希,对于每个哈希级别,我想存储它的键和值。 问题是,值可以是另一个哈希数组。 此外,该哈希可以包含键值对,其中值又是另一个哈希数组等等。另外,我不知道每个哈希的嵌套程度有多深。 举个例子: { :key1 => ‘value1’, :key2 => ‘value2’, :key3 => { :key4 => ‘value4’, :key5 => ‘value5’ }, :key6 => { :key7 => ‘value7’, :key8 => { :key9 => ‘value9’ } } } ..等等。 我想要做的是保存每个键,值对和其父级的ID。 我认为这可能是递归完成的,我只是不确定如何因为我不熟悉递归函数。 我知道如何正常迭代数据: myHash.each {|key, value| …Do something with the key and value … } 所以我猜测递归调用将是这样的: def save_pair […]