La partición produce una secuencia de secuencias, por lo que la función que usted asigna debe esperar una secuencia de dos elementos. Hay varias maneras de expresar esto:
(def tmp [ 1 2 3 9 4 8])
user> (map #(- (second %) (first %)) (partition-all 2 tmp))
(1 6 4)
user> (map #(apply - (reverse %)) (partition-all 2 tmp))
(1 6 4)
user> (map (fn [[small large]] (- large small)) (partition-all 2 tmp))
(1 6 4)
La versión usando aplica es diferente, ya que seguirá siendo "trabajo" en las listas de longitud impar:
user> (map #(apply - (reverse %)) (partition-all 2 [1 2 3 4 5 6 7]))
(1 1 1 -7)
Los otros se colgará en la entrada no válida, que le puede preferir
En el ejemplo, parece que restas el * primer * número del * segundo *, no al revés, ¿verdad? –