src/basilisp/lang/runtime.py
def nth(coll, i, notfound=__nth_sentinel):
    """Returns the ith element of coll (0-indexed), if it exists.
    None otherwise. If i is out of bounds, throws an IndexError unless
    notfound is specified."""
    if coll is None:
        return None

    try:
        return coll[i]
    except IndexError as ex:
        if notfound is not __nth_sentinel:
            return notfound
        raise ex
    except TypeError as ex:
        # Log these at TRACE so they don't gum up the DEBUG logs since most
        # cases where this exception occurs are not bugs.
        logger.log(TRACE, "Ignored %s: %s", type(ex).__name__, ex)

    try:
        for j, e in enumerate(coll):
            if i == j:
                return e
        if notfound is not __nth_sentinel:
            return notfound
        raise IndexError(f"Index {i} out of bounds")
    except TypeError:
        pass

    raise TypeError(f"nth not supported on object of type {type(coll)}")
def nth(coll, i, notfound=__nth_sentinel):
    """Returns the ith element of coll (0-indexed), if it exists.
    None otherwise. If i is out of bounds, throws an IndexError unless
    notfound is specified."""
    if coll is None:
        return None

    try:
        return coll[i]
    except IndexError as ex:
        if notfound is not __nth_sentinel:
            return notfound
        raise ex
    except TypeError as ex:
        # Log these at TRACE so they don't gum up the DEBUG logs since most
        # cases where this exception occurs are not bugs.
        logger.log(TRACE, "Ignored %s: %s", type(ex).__name__, ex)

    try:
        for j, e in enumerate(coll):
            if i == j:
                return e
        if notfound is not __nth_sentinel:
            return notfound
        raise IndexError(f"Index {i} out of bounds")
    except TypeError:
        pass

    raise TypeError(f"nth not supported on object of type {type(coll)}")
def nth ( coll , i , notfound = __nth_sentinel ) : if coll is None : return None try : return coll [ i ] except IndexError as ex : if notfound is not __nth_sentinel : return notfound raise ex except TypeError as ex : # Log these at TRACE so they don't gum up the DEBUG logs since most # cases where this exception occurs are not bugs. logger . log ( TRACE , "Ignored %s: %s" , type ( ex ) . __name__ , ex ) try : for j , e in enumerate ( coll ) : if i == j : return e if notfound is not __nth_sentinel : return notfound raise IndexError ( f"Index {i} out of bounds" ) except TypeError : pass raise TypeError ( f"nth not supported on object of type {type(coll)}" )
Returns the ith element of coll (0-indexed), if it exists.
    None otherwise. If i is out of bounds, throws an IndexError unless
    notfound is specified.
Returns the ith element of coll ( 0 - indexed ) if it exists . None otherwise . If i is out of bounds throws an IndexError unless notfound is specified .