In computer science, the term range may refer to one of three things:

  1. The possible values that may be stored in a variable.
  2. The upper and lower bounds of an array.
  3. An alternative to iterator.

Range of a variable

edit

The range of a variable is given as the set of possible values that that variable can hold. In the case of an integer, the variable definition is restricted to whole numbers only, and the range will cover every number within its range (including the maximum and minimum). For example, the range of a signed 16-bit integer variable is all the integers from −32,768 to +32,767.

Range of an array

edit

When an array is numerically indexed, its range is the upper and lower bound of the array. Depending on the environment, a warning, a fatal exception, or unpredictable behavior will occur if the program attempts to access an array element that is outside the range. In some programming languages, such as C, arrays have a fixed lower bound (zero) and will contain data at each position up to the upper bound (so an array with 5 elements will have a range of 0 to 4). In others, such as PHP, an array may have holes where no element is defined, and therefore an array with a range of 0 to 4 will have up to 5 elements (and a minimum of 2).

Range as an alternative to iterator

edit

Another meaning of range in computer science is an alternative to iterator. When used in this sense, range is defined as "a pair of begin/end iterators packed together".[1] It is argued [1] that "Ranges are a superior abstraction" (compared to iterators) for several reasons, including better safety.

In particular, such ranges are supported in C++20,[2] Boost C++ Libraries[3] and the D standard library.[4]

Range as a data type

edit
A generic class representing a range, it contains a start property and a end property

A data type for ranges can be implemented using generics.

Example in C#.

public record Range<T>(T Start, T End) where T : IComparable;

Example in Kotlin.

data class Range<T: Comparable<T>>(val start: T, val end: T)

Example in PHP.

readonly class Range<T> {
    public function __construct(
        public T $start,
        public T $end,
    ) {}
}

Example in Python.

from dataclasses import dataclass

@dataclass
class Range[T]:
    start: T
    end: T

Rust has a built-in range struct in the standard library in std::ops::Range.[5] C++ has a std::ranges library as well since C++20.[6]

Range as a operator

edit

Rust has the .. and ..= operators.

let heartwarming = "heartwarming!".to_string();
let warm = &heartwarming[5..9];

Zig also has the .. operator.

// To iterate over consecutive integers, use the range syntax.
var sum: usize = 0;
for (0..5) |i| {
    sum += i;
}

As does C#,[7]

string[] items = ["one","two","three","four"];
string[] firstThreeItems = items[0..2];

F#,[8]

[1..4]
// Outputs: [1; 2; 3; 4]

Kotlin,[9]

for (i in 1..5) print(i)

and Perl.[10]

for( 1..5) { print }

Python and PHP does not have any range operator but they do have a range function.[11][12]

See also

edit

References

edit
  1. ^ a b Andrei Alexandrescu (6 May 2009). "Iterators Must Go" (PDF). BoostCon 2009. Retrieved 29 July 2014.
  2. ^ cppreference
  3. ^ Boost.Range documentation
  4. ^ D Phobos Runtime Library std.range module
  5. ^ "Range in std::ops - Rust". doc.rust-lang.org. Retrieved 17 October 2024.
  6. ^ "Ranges library (since C++20)". cppreference.com. Retrieved 11 September 2024.
  7. ^ BillWagner (14 November 2023). "Explore ranges of data using indices and ranges - C#". learn.microsoft.com. Retrieved 2025-02-22.
  8. ^ "Range Operator". F# by example. 17 February 2023. Retrieved 2025-02-22.
  9. ^ "Ranges and progressions - Kotlin". Kotlin Help. Retrieved 2025-02-22.
  10. ^ "perlop - Perl expressions: operators, precedence, string literals - Perldoc Browser". perldoc.perl.org. Retrieved 2025-02-22.
  11. ^ "Built-in Functions". Python documentation. Python Software Foundation. Retrieved 17 December 2024.
  12. ^ "PHP: range - Manual". The PHP Documentation Group. Retrieved 17 December 2024.


📚 Artikel Terkait di Wikipedia

Computer programming

Computer programming or coding is the composition of sequences of instructions, called programs, that computers can follow to perform tasks. It involves

Computer program

A computer program is a sequence or set of instructions in a programming language for a computer to execute. It is one component of software, which also

Computer

electronic computers can perform generic sets of operations known as programs, which enable computers to perform a wide range of tasks. The term computer system

Closure (computer programming)

History of Functional Programming Languages" (PDF). International Symposium on Trends in Functional Programming. Lecture Notes in Computer Science. Vol. 7829

Ellipsis (computer programming)

In computer programming, ellipsis notation (.. or ...) is used to denote ranges, an unspecified number of arguments, or a parent directory. Most programming

Software

development easier and more portable across different computer architectures. Software in a programming language is run through a compiler or interpreter

Integer (computer science)

In computer science, an integer is a datum of integral data type, a data type that represents some range of mathematical integers. Integral data types

C (programming language)

used on computers that range from the largest supercomputers to the smallest microcontrollers and embedded systems. A successor to the programming language