![]() por Sobre el Author: Brent Welch se divierte construyendo el website www.scriptics.com, incluyendo una base de datos comentada con URLs sobre el lenguaje Tcl (el Tcl Resource Center ) y la infraestructura de ecommerce para el producto TclPro. También ha realizado varias aplicaciones grandes en Tcl/Tk, incluyendo el servidor TclHttpd, que ejecuta www.scriptics.com, el interface de usuario de correo Exmh y el editor de HTML webtk. Es el autor de Practical Programming in Tcl and Tk . Welch recibió BS ( Bachellor in Sciences en Ingeniería Aeroespacial en la Universidad de Colorado en Boulder (1982) y un MS ( master in Science ) en Informática por la Universidad de California en Berkeley (1986), y es doctor en Informática por la Universidad de California en Berkeley (1990). Anteriormente Welch fue miembro del equipo de investigación del Palo Alto Research Center de Xerox trabajando en sistemas distribuidos, y más tarde fue miembro de el equipo Tcl/Tk de los laboratorios de Sun Microsystems. Es también miembro de ACM y de la IEEE Computer Society. Home Page: http://www.beedub.com/ Contenidos: |
Resumen:
Este artículo explica algunos conceptos básicos y la sintaxis del lenguaje Tcl.
cmd arg arg arg$foo[clock seconds]"lo que sea"{lo que sea}\set, clock, y puts. El comando set asigna un valor a la variable. El comando clock interactúa con el reloj. El comando puts muestra los valores.
set seconds [clock seconds] puts "Son las [clock format $seconds]"Tener en cuenta que no usamos el signo $ cuando asignemos variables. Sólo cuando queramos el valor almacenado en la variable usaremos $. La variable
seconds no es absolutamente necesaria en el ejemplo. Podemos mostrar la hora actual con un solo comando:
puts "Son las [clock format [clock seconds]]"
puts.$foo con el valor de la variable foo, y los comandos entre parentesis por su "resultado". Esas sustitutiones es crucial que sean hechas después de las agrupaciones . Esta secuencia asegura que valores inusuales no compliquen la estructura del comando.
set i 0
while {$i < 10} {
puts "$i squared = [expr $i*$i]"
incr i
}
Aquí, las llaves son usadas para agrupar argumentos sin hacer ninguna sustitución. El parser del Tcl no sabe nada en especial acerca del comando while. Lo trata como a cualquier otro comando. Es la implementación del comando while quien sabe que el primer argumento es una expresión, y el segundo argumento consta de más comandos Tcl. Las llaves agrupan dos argumentos: la expresión lógica que controla el bucle y los comandos que hay en el cuerpo del bucle.
También vemos dos expresiones matemáticas: la comparación lógica y la multiplicación. El comando while evalúa automáticamente su primer argumento como una expresión. En otros casos deberemos usar explícitamente el comando expr para realizar evaluaciones matemáticas.
expr para llevar a cabo funciones matemáticas, que puts maneja las operaciones de salida, y set para asignar variables. Estos comandos Tcl están implementados por un procedimiento C que se encuentra registrado a sí mismo dentro de Tcl. Los procedimientos de comandos en C toman la cadena de argumentos del comando Tcl y devuelven una nueva cadena como resultado. Es muy fácil escribir procedimientos de comandos en C. Ellos pueden hacer cualquier cosa, desde acceso a bases de datos hasta crear interfaces gráficos de usuario. Tcl, el lenguaje propiamente dicho, no sabe realmente qué hace cada comando. Tan sólo agrupa argumentos, sustituye resultados, y ejecuta comandos.
proc fac {x} {
if {$x < 0} {
error "Argumento erróneo $x: debe ser un entero positivo"
} elseif {$x <= 1} {
return 1
} else {
return [expr $x * [fac [expr $x-1]]]
}
}
|
Contactar con el equipo de LinuFocus © Brent B. Welch LinuxFocus 1999 |
Translation information:
|
1999-05-28, generated by lfparser version 0.6