• takeda@lemm.ee
    link
    fedilink
    arrow-up
    23
    arrow-down
    1
    ·
    edit-2
    4 days ago

    Python, but this is actually defined and documented behavior.

    Edit: to illustrate what I mean:

    not() # True
    

    this actually is not () (the lack of space makes it look like a function), () is a tuple, in python an empty collection returns False, this is to make checks simpler. You can type:

    if my_list:
      do something
    

    instead of

    if len(my_list) > 0:
      do something
    

    not negates it so you get True

    str(not()) # 'True'
    

    converts resulting bool type into a string representation

    min(str(not())) # 'T'
    

    This might feel odd, but that’s also documented. min() not only allows to compare two numbers like it is in most languages, but you can also provide a sequence of values and it will return the smallest one.

    String is a sequence of letters.

    Letters are comparable according to ASCII (so you can do sorting). In ASCII table capital letters are first, so the ‘T’ is the smallest value.

    ord(min(str(not()))) # 84
    

    this just converts ‘T’ to Unicode value which is 84

    range(ord(min(str(not())))) # range(0, 84)
    

    This creates a sequence of numbers from 0 to 83

    sum(range(ord(min(str(not()))))) # 3486
    

    This works like min() except adds up all the numbers in the sequence together, so in our case 0+1+2+3+…+83 = 3486

    chr(sum(range(ord(min(str(not())))))) # 'ඞ'
    

    reverse of ord(), converts Unicode value to a character.