私は Ruby ブロックがどのように機能するかを理解しようとしており、そのために C でそれらを実装しようとしています。
クロージャを実装する簡単な方法の 1 つはvoid*
、クロージャ/関数に囲んでいるスタックに a を渡すことですが、Ruby ブロックは、ブロックを使用するスコープからの return ステートメントと break ステートメントも処理するようです。
loop do
break i if (i >= 4000)
i *= 2
end
Java のクロージャー提案の 1 つもこのように機能すると思います。
では、Ruby ブロック/Java クロージャーを C でどのように実装しますか?