lib/rus3/procedure/vector.rb in rus3-0.1.2 vs lib/rus3/procedure/vector.rb in rus3-0.2.0
- old
+ new
@@ -1,98 +1,101 @@
# frozen_string_literal: true
-module Rus3::Procedure
+module Rus3
+ module Procedure
- # Provides procedures to operate a vector.
+ # Provides procedures to operate a vector.
- module Vector
+ module Vector
- include Utils
- include List
- include Predicate
- include Rus3::EmptyList
+ include Utils
+ include List
+ include Predicate
+ include Rus3::EmptyList
- UNDEF = Rus3::UNDEF
+ UNDEF = Rus3::UNDEF
- # - procedure (R5RS/R7RS): (make-vector k) or (make-vector k fill)
+ # - procedure (R5RS/R7RS): (make-vector k) or (make-vector k fill)
- def make_vector(k, fill = UNDEF)
- Rus3::Vector.new(k, fill)
- end
+ def make_vector(k, fill = UNDEF)
+ Rus3::Vector.new(k, fill)
+ end
- # - library procedure (R5RS/R7RS): (vector obj ...)
+ # - library procedure (R5RS/R7RS): (vector obj ...)
- def vector(*objs)
- Rus3::Vector.vector(*objs)
- end
+ def vector(*objs)
+ Rus3::Vector.vector(*objs)
+ end
- # - procedure (R5RS/R7RS): (vector-length vector)
+ # - procedure (R5RS/R7RS): (vector-length vector)
- def vector_length(vec)
- check_vector(vec)
- vec.length
- end
+ def vector_length(vec)
+ check_vector(vec)
+ vec.length
+ end
- # - procedure (R5RS/R7RS): (vector-ref vector, k)
+ # - procedure (R5RS/R7RS): (vector-ref vector, k)
- def vector_ref(vec, k)
- check_vector(vec)
- check_upper_limit(k, vec.length)
- vec.ref(k)
- end
+ def vector_ref(vec, k)
+ check_vector(vec)
+ check_upper_limit(k, vec.length)
+ vec.ref(k)
+ end
- # - procedure (R5RS/R7RS): (vector-set! vector k obj)
+ # - procedure (R5RS/R7RS): (vector-set! vector k obj)
- def vector_set!(vec, k, obj)
- check_vector(vec)
- Rus3::Vector.vector_set!(vec, k, obj)
- end
+ def vector_set!(vec, k, obj)
+ check_vector(vec)
+ Rus3::Vector.vector_set!(vec, k, obj)
+ end
- # - library procedure (R5RS): (vector->list vector)
- # - procedure (R7RS):
- # (vector->list vector)
- # (vector->list vector start)
- # (vector->list vector start end)
+ # - library procedure (R5RS): (vector->list vector)
+ # - procedure (R7RS):
+ # (vector->list vector)
+ # (vector->list vector start)
+ # (vector->list vector start end)
- def vector_to_list(vec, start_index = 0, end_index = -1)
- end_index = vec.length if end_index == -1
+ def vector_to_list(vec, start_index = 0, end_index = -1)
+ end_index = vec.length if end_index == -1
- check_vector(vec)
- check_limits(start_index, end_index, vec.length)
+ check_vector(vec)
+ check_limits(start_index, end_index, vec.length)
- list(*vec.ref(start_index...end_index))
- end
+ list(*vec.ref(start_index...end_index))
+ end
- # - library procedure (R5RS): (list->vector list)
- # - procedre (R7RS): (list->vector list)
+ # - library procedure (R5RS): (list->vector list)
+ # - procedre (R7RS): (list->vector list)
- def list_to_vector(lst)
- Rus3::Vector.list_to_vector(lst)
- end
+ def list_to_vector(lst)
+ Rus3::Vector.list_to_vector(lst)
+ end
- # - library procedure (R5RS): (vector-fill! vector fill)
- # - procedure (R7RS): (vector-fill! vector fill start end)
+ # - library procedure (R5RS): (vector-fill! vector fill)
+ # - procedure (R7RS): (vector-fill! vector fill start end)
- def vector_fill!(vec, fill, start_index = 0, end_index = -1)
- end_index = vec.length if end_index == -1
+ def vector_fill!(vec, fill, start_index = 0, end_index = -1)
+ end_index = vec.length if end_index == -1
- check_vector(vec)
- check_limits(start_index, end_index, vec.length)
+ check_vector(vec)
+ check_limits(start_index, end_index, vec.length)
- start_index.upto(end_index - 1) {|i| vec.set!(i, fill)}
- end
+ start_index.upto(end_index - 1) {|i| vec.set!(i, fill)}
+ end
- # :stopdoc:
+ # :stopdoc:
- private
+ private
- # Makes sure that start_index < end_index <= limit.
- def check_limits(start_index, end_index, limit)
- check_upper_limit(start_index, limit)
- check_upper_limit(start_index, end_index)
- check_upper_limit(end_index, limit + 1)
- end
+ # Makes sure that start_index < end_index <= limit.
+ def check_limits(start_index, end_index, limit)
+ check_upper_limit(start_index, limit)
+ check_upper_limit(start_index, end_index)
+ check_upper_limit(end_index, limit + 1)
+ end
- # :startdoc:
+ # :startdoc:
+
+ end
end
end