[friendlies on]
(Opinion) ..
I agree with David, and to add, mapcar does not require lists of equal lengths. Also, there is not straight substition for mapcar w/vl-every given the contect you provided:
(apply 'and (mapcar 'eq '(1 2) '(1 3)))
nil
(apply 'and (mapcar 'eq '(1 2) '(1 2)))
T
(apply 'and (mapcar 'eq '(1 2) '(1 2 3)))
T
(dangerous implications)
Finally, the intent of vl-every is to terminate the evalution of list(s) as soon as one of the members of the list(s) returns a nil result of the predicate function. This way it doesn't superfluously evalute beyond that point. In that contect it blows mapcar away, as mapcar will evaluate every item.
;; contrived example, determine if all members are 9
(vl-every
'(lambda (x)
(print x)
(eq 9 x)
)
'(9 8 7 6 5 4 3 2 1)
)
;; output
9
8 nil
(apply 'and
(mapcar
'(lambda (x)
(print x)
(eq 9 x)
)
'(9 8 7 6 5 4 3 2 1)
)
)
;; output
9
8
7
6
5
4
3
2
1 nil