6.34. kink/container/ORDERED_SET¶
6.34.1. ordered_set型¶
ordered_setは、要素が全順序で順序付けられているような、setの部分型である。要素の同値関係は、全順序関係から導出される。
setから継承された次のメソッドは、要素が順番通りに現れることを保証する。
• each
• all?
• any?
• count
• fold
• reduce
• have_all?
• have_any?
6.34.1.1. Set.iter(...[Min])¶
iterメソッドは、Setの要素をSetの順番で持つiterを戻す。
Minが与えられている場合、結果のiterはMinより大きいか同値の要素だけを持つ。Minが与えられない場合、結果のiterはSetのすべての要素を持つ。
このメソッドは、set型のiterメソッドを拡張している。
事前条件
Minは、要素の全順序の定義域に属さなければならない。
例
:TREE_SET.require_from('kink/container/')
:Set <- TREE_SET.of('foo' 'bar' 'baz' 'qux')
Set.iter.each{(:E) stdout.print_line(E.repr) }
# Output:
# "bar"
# "baz"
# "foo"
# "qux"
Set.iter('baz').each{(:E) stdout.print_line(E.repr) }
# Output:
# "baz"
# "foo"
# "qux"
Set.iter('bazzz').each{(:E) stdout.print_line(E.repr) }
# Output:
# "foo"
# "qux"
Set.iter('foo').each{(:E) stdout.print_line(E.repr) }
# Output:
# "foo"
# "qux"
Set.iter('foooo').each{(:E) stdout.print_line(E.repr) }
# Output:
# "qux"
6.34.1.2. Set.front¶
frontは、Setの順序で最初に来る要素を戻す。
事前条件
Setは空であってはならない。
例
:TREE_SET.require_from('kink/container/')
:Set <- TREE_SET.of('foo' 'bar' 'baz')
stdout.print_line(Set.front.repr) # => "bar"
6.34.1.3. Set.back¶
backは、Setの順序で最後に来る要素を戻す。
事前条件
Setは空であってはならない。
例
:TREE_SET.require_from('kink/container/')
:Set <- TREE_SET.of('foo' 'bar' 'baz')
stdout.print_line(Set.back.repr) # => "foo"
6.34.1.4. Set.pop_front¶
pop_frontは、Setの順序で最初に来る要素をポップして戻す。
事前条件
Setは空であってはならない。
例
:FLAT_SET.require_from('kink/container/')
:Set <- FLAT_SET.of('foo' 'bar' 'baz')
:Front <- Set.pop_front
stdout.print_line(Front.repr) # => "bar"
stdout.print_line(Set.repr) # => Flat_set("baz" "foo")
6.34.1.5. Set.pop_back¶
pop_backは、Setの順序で最後に来る要素をポップして戻す。
事前条件
Setは空であってはならない。
例
:FLAT_SET.require_from('kink/container/')
:Set <- FLAT_SET.of('foo' 'bar' 'baz')
:Back <- Set.pop_back
stdout.print_line(Back.repr) # => "foo"
stdout.print_line(Set.repr) # => Flat_set("bar" "baz")
6.34.2. ORDERED_SET.is?(Val)¶
is?は、Valがordered_setであるかどうかを戻す。