Tcl

lenguaje de programación tcl
AutorJuan Ousterhout
Fecha de origen1988
Ultima versión8.6.12 (5 de noviembre de 2021)
Paradigmasprogramación multiparadigma, programación orientada a objetos , programación procedimental , programación imperativa , programación funcional y programación de eventos
Mecanografíadébil
Extensiones comunes.tcl y .tbc
Influenciado porAwk y ceceo
InfluyóPHP , PowerShell y Té
Implementación de referencia
Licencialicencia BSD
Sitio webtcl.tk

En informática , TCL (acrónimo de Tool command language ) es un lenguaje de scripting creado por John Ousterhout generalmente considerado fácil de aprender (en comparación con los lenguajes de su generación), pero al mismo tiempo poderoso. Se utiliza comúnmente para crear rápidamente prototipos y probar aplicaciones interpretadas , incluidas aquellas con una interfaz gráfica . La pronunciación sugerida para el acrónimo TCL es "cosquillas".

Características

Las características del lenguaje TCL incluyen:

Ejemplos

Para un Hello world el código es

pone "¡Hola mundo!"

Ejemplo de código sencillo:

pone "dame un número" obtiene el número de entrada estándar pone "El cuadrado es [expr {$ número * $ número}]"

Otro ejemplo de estilo funcional:

filtro de proceso { guión de lista } { establecer res {} foreach y $ lista { if {[nivel superior 1 $ guión $ e ]} { lappend res $ e } } set res }

¿Está el elemento e incluido en la lista lista ? Si es así, devuelve 1, de lo contrario 0.

proc en { lista e } { expr {[ lsearch - lista $ exacta $ e ] > = 0 } }

Elementos comunes de dos listas, es decir, intersección conjunta:

% filtro { a b c } { en { b c d }} b c

Tk

La extensión Tk es un conjunto de herramientas para escribir GUI (un kit de herramientas de widgets ) implementado por el propio autor de TCL. También se puede usar en combinación con otros lenguajes como Perl , Python , Ruby , Lisp y otros, y ha sido portado a varias plataformas como GNU/Linux , Apple Macintosh , Unix y Windows .

Ejemplo Tk, un reloj numérico en tres líneas:

proc cada { ms cuerpo } {eval $ cuerpo ; after $ ms [ info level 0 ]} pack [ label .clock - textvar time ] cada 1000 {set :: time [ clock format [ clock sec ] - format % H: % M: % S ]}

Artículos relacionados

Otros proyectos

Enlaces externos