Misplaced Pages

Spaceship operator: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editNext edit →Content deleted Content addedVisualWikitext
Revision as of 08:55, 21 May 2014 editYatharthROCK (talk | contribs)56 editsm Removed \textt from LaTeX field as it wa erroring out;Tag: Visual edit← Previous edit Revision as of 20:16, 6 August 2014 edit undoAjfweb (talk | contribs)Extended confirmed users5,714 edits Made into proper cite/refNext edit →
Line 19: Line 19:
The spaceship operator is primarily used for comparisons in ]. The spaceship operator is primarily used for comparisons in ].


The spaceship operator takes its name because it resembles ]'s fighter from ] . The term is now commonly used and the operator is referred by the name within the Perl ]. The spaceship operator takes its name because it resembles ]'s fighter from ].<ref>{{cite web|url=http://www.perlmonks.org/?node_id=45627|date=2000-12-08|accessdate=2014-08-06|title=Super Spaceship Operator}}</ref> The term is now commonly used and the operator is referred by the name within the Perl ].


This operator is also used in ]-based mathematical notation to represent "less than, equal to or greater than", and is synonymous with the symbols {{unicode|⋛}} and {{unicode|⋚}}. It can be used to test if the result of a calculation is actually a number. This operator is also used in ]-based mathematical notation to represent "less than, equal to or greater than", and is synonymous with the symbols {{unicode|⋛}} and {{unicode|⋚}}. It can be used to test if the result of a calculation is actually a number.

Revision as of 20:16, 6 August 2014

The spaceship operator, written <=>, is a binary operator that originated in the Perl programming language. Other languages, such as Ruby and Groovy, also support the spaceship operator. Unlike traditional equality operators, which will return true or false depending on whether the arguments are equal or unequal, the spaceship operator will return 1, 0, or −1 depending on the value of the left argument relative to the right argument. If the left argument is greater than the right argument, the operator returns 1. If the left argument is less than the right argument, the operator returns −1. If the two arguments are equal, the operator returns 0. If the two arguments cannot be compared (e.g. one of them is NaN), the operator returns undef.

As a formula:

a   <=>   b       = { 1 if  a < b , 0 if  a = b , 1 if  a > b , u n d e f otherwise. {\displaystyle a\ <=>\ b\ \ \ ={\begin{cases}-1&{\mbox{if }}a<b,\\0&{\mbox{if }}a=b,\\1&{\mbox{if }}a>b,\\undef&{\mbox{otherwise.}}\end{cases}}}

In Perl, the <=> operator only performs numeric comparisons. For string-based comparison, the analogous cmp operator is used instead.

By allowing any negative number in place of −1 and any positive in place of 1, the <=> operator can be efficiently implemented for numbers as a - b.

The spaceship operator is primarily used for comparisons in sorting.

The spaceship operator takes its name because it resembles Darth Vader's fighter from Star Wars Episode IV: A New Hope. The term is now commonly used and the operator is referred by the name within the Perl documentation.

This operator is also used in ASCII-based mathematical notation to represent "less than, equal to or greater than", and is synonymous with the symbols ⋛ and ⋚. It can be used to test if the result of a calculation is actually a number.

Example

$a = 5 <=> 7;  # $a is set to -1
$a = 7 <=> 5;  # $a is set to 1
$a = 6 <=> 6;  # $a is set to 0

See also

External links

  1. "Super Spaceship Operator". 2000-12-08. Retrieved 2014-08-06.
Categories: