 <p>Not sue why you would need to do this but you can use <code>identical</code> to do the comparison. However, since <code>identical</code> only compares two arguments, you will have to loop over your list, preferably using <code>lapply</code>...</p> <pre><code>lapply( a , function(x) identical( substitute(1 + 2) , x ) ) #[[1]] #[1] TRUE #[[2]] #[1] FALSE </code></pre> <p>Or similarly you can still use <code>==</code>. Inspection of <code>substitute(1 + 2)</code> reveals it to be a <code>language</code> object of length 3, whilst your list <code>a</code> is obviously of length 2, hence the warning on vector recycling. Therefore you just need to loop over the elements in your list which you can do thus:</p> <pre><code>lapply( a , `==` , substitute(1 + 2) ) #[[1]] #[1] TRUE #[[2]] #[1] FALSE </code></pre>