nodes: 0, module; 1, function_definition; 2, function_name:issorted; 3, parameters; 4, block; 5, identifier:list_; 6, default_parameter; 7, expression_statement; 8, return_statement; 9, identifier:op; 10, attribute; 11, comment:"""
      Determines if a list is sorted
  
      Args:
          list_ (list):
          op (func): sorted operation (default=operator.le)
  
      Returns:
          bool : True if the list is sorted
      """; 12, call; 13, identifier:operator; 14, identifier:le; 15, identifier:all; 16, generator_expression; 17, call; 18, for_in_clause; 19, identifier:op; 20, argument_list; 21, identifier:ix; 22, call; 23, subscript; 24, subscript; 25, identifier:range; 26, argument_list; 27, identifier:list_; 28, identifier:ix; 29, identifier:list_; 30, binary_operator:ix + 1; 31, binary_operator:len(list_) - 1; 32, identifier:ix; 33, integer:1; 34, call; 35, integer:1; 36, identifier:len; 37, argument_list; 38, identifier:list_
code: def issorted(list_, op=operator.le):
      """
      Determines if a list is sorted
  
      Args:
          list_ (list):
          op (func): sorted operation (default=operator.le)
  
      Returns:
          bool : True if the list is sorted
      """
      return all(op(list_[ix], list_[ix + 1]) for ix in range(len(list_) - 1))