Why is the "<" symbol named the "less-than sign"?

Joao S. O. Bueno gwidion at gmail.com
Wed Sep 16 10:11:52 CDT 2020


Of course they are different things - but when you create characters to use
in computers with
a 7 bit restriction, back in the 60-70's, they had to choose to overlap
things.

Nowadays, in a "pretty text" context, it makes sense that the tools
automatically transform
the symbols to the one that is semantically more correct - everyon is
familiar with
Microsoft Word and others changing single quotes to curly quotes, with
open/close context;

But when one talks of a file format that is meant to be possibly typed by a
human and read by
a computer, like xml, and others, the extra "translation layer", and the
physical limitation
of symbols in a keyboard makes it not worth to use what would be a
"correct" character
in every language. Thus, "less-than" doubles as "Left angle bracket" in all
computer-scripts
or languages that use it in that way.
(I am quite sure the above paragraph will sound childish for people on this
list, and I'd love
to see a more formal rewrite of the same idea)

But the unicode standard surely have the characters for every use
(I produced the following output using my own tool, sorry if
it is not the most readable, but I think it conveys enough
information to understand the case).


Character(code=0x3008, value='〈', name='LEFT ANGLE BRACKET', category='Ps',
width='W'),
Character(code=0x300A, value='《', name='LEFT DOUBLE ANGLE BRACKET',
category='Ps', width='W'),
Character(code=0x2991, value='⦑', name='LEFT ANGLE BRACKET WITH DOT',
category='Ps', width='N'),
 Character(code=0x27E8, value='⟨', name='MATHEMATICAL LEFT ANGLE BRACKET',
category='Ps', width='Na'),
Character(code=0x27EA, value='⟪', name='MATHEMATICAL LEFT DOUBLE ANGLE
BRACKET', category='Ps', width='Na'),
 Character(code=0x276C, value='❬', name='MEDIUM LEFT-POINTING ANGLE BRACKET
ORNAMENT', category='Ps', width='N'),
Character(code=0x2770, value='❰', name='HEAVY LEFT-POINTING ANGLE BRACKET
ORNAMENT', category='Ps', width='N'),
 Character(code=0xFE3D, value='︽', name='PRESENTATION FORM FOR VERTICAL
LEFT DOUBLE ANGLE BRACKET', category='Ps', wid
th='W'),

And then:
Character(code=0xFE3F, value='︿', name='PRESENTATION FORM FOR VERTICAL LEFT
ANGLE BRACKET', category='Ps', width='W')
Character(code=0x003C, value='<', name='LESS-THAN SIGN', category='Sm',
width='Na'),
Character(code=0x2264, value='≤', name='LESS-THAN OR EQUAL TO',
category='Sm', width='A'),
Character(code=0x2266, value='≦', name='LESS-THAN OVER EQUAL TO',
category='Sm', width='A'),
Character(code=0x2268, value='≨', name='LESS-THAN BUT NOT EQUAL TO',
category='Sm', width='N'),
Character(code=0x226A, value='≪', name='MUCH LESS-THAN', category='Sm',
width='A'),
Character(code=0x226E, value='≮', name='NOT LESS-THAN', category='Sm',
width='A'),
Character(code=0x2270, value='≰', name='NEITHER LESS-THAN NOR EQUAL TO',
category='Sm', width='N'),
Character(code=0x2272, value='≲', name='LESS-THAN OR EQUIVALENT TO',
category='Sm', width='N'),
Character(code=0x2274, value='≴', name='NEITHER LESS-THAN NOR EQUIVALENT
TO', category='Sm', width='N'),
Character(code=0x2276, value='≶', name='LESS-THAN OR GREATER-THAN',
category='Sm', width='N'),
Character(code=0x2277, value='≷', name='GREATER-THAN OR LESS-THAN',
category='Sm', width='N'),
Character(code=0x2278, value='≸', name='NEITHER LESS-THAN NOR
GREATER-THAN', category='Sm', width='N'),
Character(code=0x2279, value='≹', name='NEITHER GREATER-THAN NOR
LESS-THAN', category='Sm', width='N'),
Character(code=0x22D6, value='⋖', name='LESS-THAN WITH DOT', category='Sm',
width='N'),
Character(code=0x22D8, value='⋘', name='VERY MUCH LESS-THAN',
category='Sm', width='N'),
Character(code=0x22DA, value='⋚', name='LESS-THAN EQUAL TO OR
GREATER-THAN', category='Sm', width='N'),
Character(code=0x22DB, value='⋛', name='GREATER-THAN EQUAL TO OR
LESS-THAN', category='Sm', width='N'),
Character(code=0x22DC, value='⋜', name='EQUAL TO OR LESS-THAN',
category='Sm', width='N'),
Character(code=0x22E6, value='⋦', name='LESS-THAN BUT NOT EQUIVALENT TO',
category='Sm', width='N'),
Character(code=0x2343, value='⍃', name='APL FUNCTIONAL SYMBOL QUAD
LESS-THAN', category='So', width='N'),
Character(code=0x2976, value='⥶', name='LESS-THAN ABOVE LEFTWARDS ARROW',
category='Sm', width='N'),
Character(code=0x2977, value='⥷', name='LEFTWARDS ARROW THROUGH LESS-THAN',
category='Sm', width='N'),
Character(code=0x2993, value='⦓', name='LEFT ARC LESS-THAN BRACKET',
category='Ps', width='N'),
Character(code=0x2996, value='⦖', name='DOUBLE RIGHT ARC LESS-THAN
BRACKET', category='Pe', width='N'),
Character(code=0x29C0, value='⧀', name='CIRCLED LESS-THAN', category='Sm',
width='N'),
Character(code=0x2A79, value='⩹', name='LESS-THAN WITH CIRCLE INSIDE',
category='Sm', width='N'),
Character(code=0x2A7B, value='⩻', name='LESS-THAN WITH QUESTION MARK
ABOVE', category='Sm', width='N'),
Character(code=0x2A7D, value='⩽', name='LESS-THAN OR SLANTED EQUAL TO',
category='Sm', width='N'),
Character(code=0x2A7F, value='⩿', name='LESS-THAN OR SLANTED EQUAL TO WITH
DOT INSIDE', category='Sm', width='N'),
Character(code=0x2A81, value='⪁', name='LESS-THAN OR SLANTED EQUAL TO WITH
DOT ABOVE', category='Sm', width='N'),
Character(code=0x2A83, value='⪃', name='LESS-THAN OR SLANTED EQUAL TO WITH
DOT ABOVE RIGHT', category='Sm', width='N')
,
Character(code=0x2A85, value='⪅', name='LESS-THAN OR APPROXIMATE',
category='Sm', width='N'),
Character(code=0x2A87, value='⪇', name='LESS-THAN AND SINGLE-LINE NOT EQUAL
TO', category='Sm', width='N'),
Character(code=0x2A89, value='⪉', name='LESS-THAN AND NOT APPROXIMATE',
category='Sm', width='N'),
Character(code=0x2A8B, value='⪋', name='LESS-THAN ABOVE DOUBLE-LINE EQUAL
ABOVE GREATER-THAN', category='Sm', width='N
'),
Character(code=0x2A8C, value='⪌', name='GREATER-THAN ABOVE DOUBLE-LINE
EQUAL ABOVE LESS-THAN', category='Sm', width='N
'),
Character(code=0x2A8D, value='⪍', name='LESS-THAN ABOVE SIMILAR OR EQUAL',
category='Sm', width='N'),
Character(code=0x2A8F, value='⪏', name='LESS-THAN ABOVE SIMILAR ABOVE
GREATER-THAN', category='Sm', width='N'),
Character(code=0x2A90, value='⪐', name='GREATER-THAN ABOVE SIMILAR ABOVE
LESS-THAN', category='Sm', width='N'),
Character(code=0x2A91, value='⪑', name='LESS-THAN ABOVE GREATER-THAN ABOVE
DOUBLE-LINE EQUAL', category='Sm', width='N
'),
Character(code=0x2A92, value='⪒', name='GREATER-THAN ABOVE LESS-THAN ABOVE
DOUBLE-LINE EQUAL', category='Sm', width='N
'),
Character(code=0x2A93, value='⪓', name='LESS-THAN ABOVE SLANTED EQUAL ABOVE
GREATER-THAN ABOVE SLANTED EQUAL', categor
y='Sm', width='N'),
Character(code=0x2A94, value='⪔', name='GREATER-THAN ABOVE SLANTED EQUAL
ABOVE LESS-THAN ABOVE SLANTED EQUAL', categor
y='Sm', width='N'),
Character(code=0x2A95, value='⪕', name='SLANTED EQUAL TO OR LESS-THAN',
category='Sm', width='N'),
Character(code=0x2A97, value='⪗', name='SLANTED EQUAL TO OR LESS-THAN WITH
DOT INSIDE', category='Sm', width='N'),
Character(code=0x2A99, value='⪙', name='DOUBLE-LINE EQUAL TO OR LESS-THAN',
category='Sm', width='N'),
Character(code=0x2A9B, value='⪛', name='DOUBLE-LINE SLANTED EQUAL TO OR
LESS-THAN', category='Sm', width='N'),
Character(code=0x2A9D, value='⪝', name='SIMILAR OR LESS-THAN',
category='Sm', width='N'),
Character(code=0x2A9F, value='⪟', name='SIMILAR ABOVE LESS-THAN ABOVE
EQUALS SIGN', category='Sm', width='N'),
Character(code=0x2AA1, value='⪡', name='DOUBLE NESTED LESS-THAN',
category='Sm', width='N'),
Character(code=0x2AA3, value='⪣', name='DOUBLE NESTED LESS-THAN WITH
UNDERBAR', category='Sm', width='N'),
Character(code=0x2AA4, value='⪤', name='GREATER-THAN OVERLAPPING
LESS-THAN', category='Sm', width='N'),
Character(code=0x2AA5, value='⪥', name='GREATER-THAN BESIDE LESS-THAN',
category='Sm', width='N'),
Character(code=0x2AA6, value='⪦', name='LESS-THAN CLOSED BY CURVE',
category='Sm', width='N'),
Character(code=0x2AA8, value='⪨', name='LESS-THAN CLOSED BY CURVE ABOVE
SLANTED EQUAL', category='Sm', width='N'),
Character(code=0x2AF7, value='⫷', name='TRIPLE NESTED LESS-THAN',
category='Sm', width='N'),
Character(code=0x2AF9, value='⫹', name='DOUBLE-LINE SLANTED LESS-THAN OR
EQUAL TO', category='Sm', width='N'),
Character(code=0xFE64, value='﹤', name='SMALL LESS-THAN SIGN',
category='Sm', width='W'),
Character(code=0xFF1C, value='<', name='FULLWIDTH LESS-THAN SIGN',
category='Sm', width='F'),
Character(code=0xE003C, value='', name='TAG LESS-THAN SIGN', category='Cf',
width='N')

On Wed, 16 Sep 2020 at 10:34, Andrea Giammarchi via Unicode <
unicode at unicode.org> wrote:

> What your right eye sees can't compete with what the outer world actually
> is 😂
>
> (emoji with no less-than on purpose)
>
> On Wed, Sep 16, 2020 at 3:22 PM Shriramana Sharma <samjnaa at gmail.com>
> wrote:
>
>> There's a less than symbol in that 😉 as well.
>>
>> On Wed, 16 Sep, 2020, 18:07 Andrea Giammarchi, <
>> andrea.giammarchi at gmail.com> wrote:
>>
>>> easy to visualize too, same for me too ... it's actually semantic, if
>>> you don't think it's a "v" but an equal = that rotates axes to indicate 0 <
>>> 1, 1 = 1, 2 > 1 😉
>>>
>>> also, what's the meaning of winking? (kidding)
>>>
>>> best regards
>>>
>>> On Wed, Sep 16, 2020 at 2:19 PM Shriramana Sharma via Unicode <
>>> unicode at unicode.org> wrote:
>>>
>>>> When I was a child and first taught < and > at school, I figured that
>>>> they were derived from the equals sign =, except that the bigger
>>>> number has the bigger separation between the lines and the smaller
>>>> number has the smaller separation becoming none. So I do see meaning
>>>> in it.
>>>>
>>>> And it was obviously named the less than sign long before it was used
>>>> for XML tags.
>>>>
>>>> --
>>>> Shriramana Sharma ஶ்ரீரமணஶர்மா श्रीरमणशर्मा 𑀰𑁆𑀭𑀻𑀭𑀫𑀡𑀰𑀭𑁆𑀫𑀸
>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://corp.unicode.org/pipermail/unicode/attachments/20200916/cfdefc65/attachment.htm>


More information about the Unicode mailing list