Mi función favorita "oculta o útil" es cómo funciona la cita en Tcl. Me gusta usar la frase "citando es una herramienta, no una regla". También me gusta decir "sólo necesita las llaves cuando se necesita llaves"
Mientras que la mayoría de los idiomas tienen reglas para los que delimitadores de bloque deben ser utilizados para ciertas cosas (por ejemplo, en C debe utilizar {} para designar un bloque), Tcl no es tan estricto.
Con Tcl, puede elegir los caracteres de cotización que le den el efecto que necesita. Sin duda hay mejores prácticas, pero al final puedes elegir el personaje de cita que mejor te permita hacer el trabajo.
Eso significa, por ejemplo, se puede definir un procedimiento de muchas maneras, incluyendo:
proc foo {args} {
.... body here ....
}
proc foo "args" "
.... body here ....
"
proc foo args [some code that returns the body]
... y así sucesivamente. Lo mismo aplica para sentencias condicionales, bucles y todo lo demás. (para los no iniciados, las llaves son más o menos equivalentes a la comilla simple de la concha, las comillas dobles son como la comilla doble de la concha, y los corchetes son como la contraparte de la concha).
Ahora, mucha gente mira eso y dice WTF? pero realmente le da mucho poder al programador. A menudo recibimos preguntas en comp.lang.tcl en la línea de "si hago esto {y $ eso} ', ¿cómo puedo obtener $ para ampliar?". La respuesta sigue al viejo chiste "paciente: doctor, duele cuando hago este doctor: no hagas eso". Es decir, si no te gusta el comportamiento que obtienes con un conjunto de delimitadores, elige algún otro delimitador. El hecho de que una instrucción if se construya normalmente con llaves no significa que debe construirse con llaves.
Esa es mi función "oculta" favorita de Tcl. No está oculto, está justo en la página del manual de Tcl (n) maravillosamente completa pero concisa, pero las ramificaciones no son claras hasta que comprendes completamente cómo funciona Tcl.
wiki de la comunidad por favor. –
En segundo lugar esa solicitud. – Geo
Lo siento todos ... Tengo que aceptar cualquiera de las respuestas para stack over fow. Aquí todo es una buena respuesta solo ... Simplemente acepto la respuesta como basada en votos al alza – joe