Operators
 lists the operators in the
Nix expression language, in order of precedence (from strongest to
weakest binding).
  Operators
  
    
      
        Name
        Syntax
        Associativity
        Description
        Precedence
      
    
    
      
        Select
        e .
        attrpath
        [ or def ]
        
        none
        Select attribute denoted by the attribute path
        attrpath from set
        e.  (An attribute path is a
        dot-separated list of attribute names.)  If the attribute
        doesn’t exist, return def if
        provided, otherwise abort evaluation.
        1
      
      
        Application
        e1 e2
        left
        Call function e1 with
        argument e2.
        2
      
      
        Arithmetic Negation
        - e
        none
        Arithmetic negation.
        3
      
      
        Has Attribute
        e ?
        attrpath
        none
        Test whether set e contains
        the attribute denoted by attrpath;
        return true or
        false.
        4
      
      
        List Concatenation
        e1 ++ e2
        right
        List concatenation.
        5
      
      
        Multiplication
        
          e1 * e2,
        
        left
        Arithmetic multiplication.
        6
      
      
        Division
        
          e1 / e2
        
        left
        Arithmetic division.
        6
      
      
        Addition
        
          e1 + e2
        
        left
        Arithmetic addition.
        7
      
      
        Subtraction
        
          e1 - e2
        
        left
        Arithmetic subtraction.
        7
      
      
        String Concatenation
        
          string1 + string2
        
        left
        String concatenation.
        7
      
      
        Not
        ! e
        none
        Boolean negation.
        8
      
      
        Update
        e1 //
        e2
        right
        Return a set consisting of the attributes in
        e1 and
        e2 (with the latter taking
        precedence over the former in case of equally named
        attributes).
        9
      
      
        Less Than
        
          e1 < e2,
        
        none
        Arithmetic comparison.
        10
      
      
        Less Than or Equal To
        
          e1 <= e2
        
        none
        Arithmetic comparison.
        10
      
      
        Greater Than
        
          e1 > e2
        
        none
        Arithmetic comparison.
        10
      
      
        Greater Than or Equal To
        
          e1 >= e2
        
        none
        Arithmetic comparison.
        10
      
      
        Equality
        
          e1 == e2
        
        none
        Equality.
        11
      
      
        Inequality
        
          e1 != e2
        
        none
        Inequality.
        11
      
      
        Logical AND
        e1 &&
        e2
        left
        Logical AND.
        12
      
      
        Logical OR
        e1 ||
        e2
        left
        Logical OR.
        13
      
      
        Logical Implication
        e1 ->
        e2
        none
        Logical implication (equivalent to
        !e1 ||
        e2).
        14