2010-09-01 30 views
5

supongamos que tengo un algoritmo largo que me gustaría ser opcionalmente detallado para depurarlo. Hasta ahora acabo de agregar muchos if verbose then printf "whatever" alrededor del código, pero esto obliga al código a ejecutar muchas pruebas inútiles si no quiero tenerlo en el modo detallado.compilación condicional en OCaml

¿Hay alguna manera de obtener una compilación condicional simple que simplemente puede ignorar las líneas de impresión si se establece un indicador?

Algo que, por ejemplo, yo puedo hacer en C utilizando #IFDEF DEBUG printf .. #ENDIF

Respuesta

7

Lo que se busca se puede encontrar en camlp4. Si incluye las macros predefinidas entonces se puede definir banderas en la línea de comandos usando -D (y -U para ellos UNDEF):

camlp4o pa_macro.cmo -DFOO file.ml 

En el código que se parece a esto:

let f x = IFDEF FOO THEN x + 1 ELSE x - 1 END;; 
Cuestiones relacionadas