SICP (Structure and Interpretation of Computing Programs o Estructura e Interpretación de los Programas de Computación) es a dia de hoy un desconocido para algunos, sin embargo es probablemente el libro a nivel informático más completo y el que considero por encima de cualquier otro (incluidos los excepcionales libros ´The art of computer programming´ de Knuth).
El libro a día de hoy tiene 25 años, en él se emplea tan peculiar Scheme (un dialecto de LISP) e impresionará a aquellos por muchos conocimientos que tengan, ya que, aunque parezca imposible, dicho libro enseña a programar de otra manera.

El libro está disponible para descarga de forma gratuita y libre, y como no, fue escrito por expertos de MIT (Massachusetts Institute Technology ó Instituto Tecnológico de Massachusetts).
Además se pueden encontrar las excepcionales clases en video referente a este libro en la web de la misma universidad de Abelson Sussman.
En el artículo anterior explicabamos como trabajar con VC para el control de versiones, de aquí la importancia de este artículo, que enseña a utilizar ediff para ver las diferencias entre varios ficheros y esto puede emplearse de forma conjunta y muy útil con VC.
Se puede emplear M-x ediff-revision para iniciar ediff. En este modo podemos emplear distintas teclas asociadas a funciones relacionadas con ediff:
? : ‘ediff-help‘; ayuda sobre ediff
n ó SPC : ‘ediff-next-difference‘; muestra la siguiente diferencia.
p ó DEL : ‘ediff-previous-difference‘; muestra la diferencia anterior.
j : ‘ediff-jump-to-difference‘; se desplaza o salta a una diferencia específica.
C-v ó v ó >: ‘ediff-scroll-vertically‘; pasa a la siguiente página de diferencias.
M-v ó V ó <: ‘ediff-scroll-horizontally‘; pasa a la página anterior de diferencias.
| (pipe): ‘ediff-toggle-split‘; intercambia las vistas de los buffers.
m : ‘ediff-toggle-wide-display‘; hace toggle entre el tamaño normal y el ancho máximo.
a : ‘ediff-copy-A-to-B‘; copia la diferencia actual en el buffer del fichero A sobre el buffer del fichero B.
b : ‘ediff-copy-B-to-A‘; copia la diferencia actual en el buffer del fichero B sobre el buffer del fichero A.
r a ó r b : ‘ediff-restore-diff‘; restaura la diferencia actual del fichero del buffer A (ó B respectivamente) a la anterior.
A ó B : ‘ediff-toggle-read-only‘; Cambia el buffer a sólo lectura/escritura para A (ó B respectivamente).
g a ó g b : ‘ediff-jump-to-difference-at-point‘; re-centra la comparación de buffers en la diferencia más cercana a la localización actual.
C-l : ‘ediff-recenter‘; restaura la comparación mostrada para que sean resaltadas las regiones de todos los buffers y sean visibles.
! : ‘ediff-update-diffs‘; actualiza y vuelve a mostrar las regiones resaltadas.
w a ó w b : ‘ediff-save-buffer‘; guarda un buffer específico en el disco.
E : ‘ediff-documentation‘; abre el manual para ediff.
z : ‘ediff-suspend‘; cierra la ventana de control de ediff, pero deja la sesión activa por lo que puede ser recuperada luego.
q : ‘ediff-quit‘; cierra ediff.
Además usando C-h i se accede a info de cada acción de ediff. Por ejemplo C-h i m e d, haria info (C-h i) para el menú (m) de e (ediff) d (de la función asociada a e dentro de ediff).