Pretty sure that this isn't the post's purpose but it makes me want to never touch Clojure. I'm obviously not used to it however I can't help but think that it takes serious mental gymnastics to consider the "optimized" code the author came up with as even remotely good, from readability / comprehensibility / extensibility perspective.
This is a standard feature of Clojure you learn called a transducer pipeline. It describes a pipeline of transformation for transforming a source:
(sliding-array 8 1)
This says to iterate 8 elements at a time in a sliding window manner, so you grab element 0 to 7, then 1 to 8, then 2 to 9, etc., and where the type of the windows will be an array.
(keep fn)
This says that for each of those sliding window, keep only the non-nil values returned by fn.
Finally, this is the function used by keep. It receives as input an array of each sliding window of 8 elements, and it says when the value of the last element in it minus the first element in it is greater than 1000 return the sliding window, otherwise return nil.
In effect, the whole thing will thus return only the sliding windows for which the value of the last minus first element in the window is greater than 1000.
(sequence array-xf times-v)
array-xf only describes the computation, it is generic to the source, so you need to apply it to a source, that's what this code does. It says to apply array-xf to times-v and give you a sequence of the result.