![]() ±Û¾´ÀÌ ¼Ò°³: Brent Welch¾¾´Â www.scriptics.comÀ¥½ÎÀÌÆ®°¡ ¸¸µé¾îÁú¶§ Tcl°ú °ü·ÃµÈ URLµéÀ» º¸±âÁÁ°Ô µ¥ÀÌÅͺ£À̽ºÈÇϰí TclProÁ¦Ç°À» À§ÇÑ ÀüÀÚ»ó°Å·¡ ÀÎÇÁ¶óµéÀ» ¸¸µå¼Ì½À´Ï´Ù. ¶ÇÇÑ Tcl/Tk¸¦ ÀÌ¿ëÇÑ ´ëÇü ÇÁ·Î±×·¥µéÀ» ¸¹ÀÌ ¸¸µé¾ú½À´Ï´Ù. °³¹ßÇÑ ´ëÇ¥ÀûÀÎ ÇÁ·Î±×·¥À¸·Î´Â ÇöÀç www.scriptics.comÀ» ¿î¿µÇϴµ¥ »ç¿ëµÇ°í ÀÖ´Â TclHttpdÀ¥¼¹ö, ¸ÞÀÏ »ç¿ëÀÚÀÎÅÍÆäÀ̽ºÀÎ Wxmh, webtk HTMLÆíÁý±âµîÀÌ ÀÖ½À´Ï´Ù. ±×´Â ¶Ç "Practical Programming in Tcl and Tk"¶õ Ã¥À» Æì³»±âµµ Çß¾ú½À´Ï´Ù. (Çѱ¹¾îÆÇµµ ÀÖÁÒ:) Welch¾¾´Â 1982³â Boulder¿¡ ÀÖ´Â University of Colorado¿¡¼ Ç×°ø¿ìÁÖ°øÇÐÀ» Àü°øÇÏ¿´À¸¸ç 1986³â University of California, Berkeley¿¡¼ ÄÄÇ»ÅͰøÇÐ ¼®»çÇÐÀ§¸¦ ¹Þ¾ÒÀ¸¸ç 90³âµµ¿¡ ¹Ú»çÇÐÀ§¸¦ ¹Þ¾Ò½À´Ï´Ù. Welch¾¾´Â Á¦·Ï½º PARC¿¡¼ ºÐ»ê½Ã½ºÅÛ¿¡ °üÇÑ ¿¬±¸¿øÀ¸·Î ÀÏÇÑÀûÀÌ ÀÖÀ¸¸ç ±× ÈÄ ½ã ¸¶ÀÌÅ©·Î½Ã½ºÅÛÁî ¿¬±¸¼Ò¿¡¼ Tcl/TkÆÀ¿øÀ¸·Î Ȱµ¿Çϰí ÀÖ½À´Ï´Ù. ÇöÀç ACM°ú IEEE ÄÄÇ»ÅͺаúÀÇ È¸¿øÀÔ´Ï´Ù. ȨÆäÀÌÁö: http://www.beedub.com/ Â÷·Ê: |
Abstract:
ÀÌ ±Û¿¡¼´Â Tcl¾ð¾îÀÇ ±âº»°³³ä°ú ¹®¹ý¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.
½ºÅ©¸³Æ®¾ð¾îÀÎ TclÀº ¸Å¿ì °£´ÜÇÑ ¹®¹ýÀ» °¡Áö°í ÀÖ´Ù.
¸í·É¾î ÀÎÀÚ ÀÎÀÚ ÀÎÀÚ
$foo
foo
´Â º¯¼ö¸íÀÌ´Ù..[clock seconds]
"some stuff"
{some stuff}
\
ÀÌ·¡¿¹´Â ÇöÀç½Ã°£À» ȸ鿡 Ãâ·ÂÇÏ´Â °£´ÜÇÑ Tcl¸í·ÉÀÌ´Ù. »ç¿ëµÇ´Â Tcl¸í·É¾î´Â set
, clock
, puts
µî ¼¼°³ÀÌ´Ù. set
¸í·ÉÀº º¯¼ö¸¦ ÁöÁ¤ÇÑ´Ù. clock
¸í·ÉÀº ÇöÀç ½Ã°£°ªÀ» °è»êÇÑ´Ù. puts
¸í·É¾î´Â °ªÀ» Ãâ·ÂÇÑ´Ù.
set seconds [clock seconds] puts "The time is [clock format $seconds]"
º¯¼ö¸¦ ÁöÁ¤ÇÒ¶§´Â $±âÈ£¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ±â¾ïÇØ µÎ±â ¹Ù¶õ´Ù. ´ÜÁö ¿©·¯ºÐÀÌ ¾î¶² º¯¼öÀÇ °ªÀ» »ç¿ëÇÒ Çʿ䰡 ÀÖÀ»¶§ $¸¦ ºÙ¿© »ç¿ëÇÑ´Ù. seconds
º¯¼ö´Â »ç½Ç ²À ÇÊ¿äÇÑ º¯¼ö´Â ¾Æ´Ï´Ù. ¿©·¯ºÐÀº ÇöÀç ½Ã°£À» ´ÙÀ½ ¸í·ÉÇÑÁٷεµ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.:
puts "The time is [clock format [clock seconds]]"
TclÆÄ¼´Â ´Ù¸¥ ¼¼´Ü°è¸¦ °ÅÃÄ Tcl¹®¹ýÀ» ÇØ¼®ÇÑ´Ù.: ÀÎÀÚ ±×·ìÈ, °á°ú ´ëü,¸í·ÉÀÇ ½ÇÇà.
puts
¸í·É¿¡¼ »ç¿ëµÇ¾ú´Ù.
$foo
¸¦ foo
º¯¼öÀÇ °ªÀ¸·Î ¹Ù²Ù´Â °ÍÀÌ´Ù.Áï °ýÈ£»çÀÌÀÇ ¸í·É¾îµéÀ» ±× ¸í·ÉÀÇ °á°ú·Î ¹Ù²Ù´Â °ÍÀÌ´Ù. ÀÌ ´ëü°úÁ¤Àº ÀϹÝÀûÀ¸·Î ±×·ìȰ¡ °áÁ¤µÇ°í ³ ´ÙÀ½¿¡ ¼öÇàµÈ´Ù. ÀÌ ¼ø¼¿¡ µû¶ó ÀÛ¾÷À» ¼öÇàÇϸé ÀÌ»óÇÑ °ªÀ¸·Î ¸í·É¾îÀÇ ±¸Á¶°¡ º¹ÀâÇØÁöÁö ¾Êµµ·Ï ÇØÁØ´Ù.
¿©±â ´Ù¸¥ ¿¹Á¦ Çϳª¸¦ »ìÆìº¸ÀÚ.:
¿©±â¼ Áß°ýÈ£´Â ¾î¶² ´ëü°úÁ¤ÀÌ ÀϾÁö ¾Ê°Ô ÇÏ¸é¼ ÀÎÀÚµéÀ» ±×·ìÈÇϱâ À§ÇÏ¿© »ç¿ëµÇ¾ú´Ù. TclÆÄ¼´Â
set i 0 while {$i < 10} { puts "$i squared = [expr $i*$i]" incr i }
while
¸í·É¿¡ ´ëÇÏ¿© Ưº°ÇÑ µ¿ÀÛÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ¾Ë°í ÀÖ´Ù.¸¶Ä¡ ´Ù¸¥ ¸í·É¾îó·³ Ãë±ÞµÈ´Ù. while
¸í·ÉÀÇ ½ÇÇàÀº ´ÜÁö ù¹øÂ° ÀÎÀÚ°¡ Ç¥Çö½ÄÀ̸ç, µÎ¹øÂ°ÀÎÀÚ°¡ Tcl¸í·É¾îµéÀ̶ó´Â °Í¸¸ ¾Ë°í ÀÖ´Ù. °ýÈ£·Î µÈ ±×·ìÀº µÎ°³ÀÇ ÀÎÀÚ¸¦ °¡Áö°í ÀÖ´Ù.: ·çÇÁÀÇ Á¦¾î¸¦ ´ã´çÇÏ´Â ºÒ¸°Ç¥Çö½Ä°ú ·çÇÁ°úÁ¤¿¡¼ µ¿ÀÛÇÒ ¸í·É¾î·Î µÇ¾î ÀÖ´Ù.
¿ì¸®´Â µÎ°¡Áö ¼öÇÐÀû Ç¥Çö½ÄÀ» º¸¾Ò´Ù.: Çϳª´Â ºÒ¸° ¿¬»êÀ̸ç Çϳª´Â °¡°¨½ÂÁ¦·Î Ç¥ÇöµÇ´Â ¼ö½ÄÀÌ´Ù. while¸í·ÉÀº ÀÚµ¿À¸·Î ±× ù¹øÂ° ÀÎÀÚ¸¦ ¼ö½ÄÀ¸·Î Æò°¡ÇÑ´Ù. ´Ù¸¥ °æ¿ì¿¡¼ ¿©·¯ºÐÀº ¹Ýµå½Ã Ưº°ÇÑ ¼öÇÐÀû °è»êÀ» ¼öÇàÇÏ·Á¸é expr
¸í·É¾î¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
¸¶Áö¸·À¸·Î TclÀº ¾î·Á¿î ¸î°¡Áö ÀÛ¾÷À» ÁøÇàÇϱâ À§ÇÏ¿© ¸î¸îÀ» È£ÃâÇÑ´Ù. ¿ì¸®´Â ÀÌ¹Ì TclÀÌ ¼öÇÐÇÔ¼ö¸¦ »ç¿ëÇϱâ À§ÇÏ¿© expr
¸í·ÉÀ» »ç¿ëÇϰí, Ãâ·ÂÇÔ¼ö¸¦ ´Ù·ç±â À§ÇÏ¿© puts
ÇÔ¼ö¸¦ »ç¿ëÇϸç, º¯¼ö°ªÀ» ÁöÁ¤Çϱâ À§ÇÏ¿© set
¸í·ÉÀ» »ç¿ëÇÑ´Ù´Â °ÍÀ» »ìÆìº¸¾Ò´Ù. ÀÌ·¯ÇÑ Tcl¸í·É¾îµéÀº Tcl¿¡ µî·ÏµÇ¾î ÀÖ´Â CÇÁ·Î½ÃÀú¸¦ È£ÃâÇÏ¿© ½ÇÇàµÈ´Ù. C¸í·É¾î ÇÁ·Î½ÃÀú´Â Tcl¸í·ÉÇàÀ¸·ÎºÎÅÍ ¹®ÀÚ¿ ÀÎÀÚ¸¦ ¹Þ¾Æ¼ ±× °ªÀ» »õ·Î¿î ¹®ÀÚ¿·Î µ¹·ÁÁØ´Ù. C¸í·É¾î ÇÁ·Î½ÃÀú¸¦ ÀÛ¼ºÇÏ´Â °ÍÀº ¸Å¿ì ½¬¿î ÀÏÀÌ´Ù. C¸í·É¾î ÇÁ·Î½ÃÀú¸¦ ÀÌ¿ëÇÏ¸é µ¥ÀÌÅͺ£À̽ºÀÇ Á¢±Ù¿¡¼ºÎÅÍ ±×·¡ÇÈÇÑ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ¸¸µå´Â µîÀÇ ÀϱîÁö ¸ðµç ÀÛ¾÷ÀÌ °¡´ÉÇÏ´Ù.¾ð¾î·Î¼ÀÇ TclÀº ½ÇÁ¦·Î ±× ¸í·ÉÀÌ ¾î¶² ÀÏÀ» ÇÏ´ÂÁö ½ÇÁ¦·Î ¸ð¸¥´Ù. ´ÜÁö ÀÎÀÚµéÀ» ±×·ìÈÇϰí, °á°ú¸¦ ġȯÇϰí, ¸í·É¾îµéÀ» ó¸®ÇÒ »ÓÀÌ´Ù.
´ÙÀ½ ÇÁ·Î±×·¥Àº ÆÑÅ丮¾óÀ» ±¸ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù.:
proc fac {x} { if {$x < 0} { error "Invalid argument $x: must be a positive integer" } elseif {$x <= 1} { return 1 } else { return [expr $x * [fac [expr $x-1]]] } }
À¥ÆäÀÌÁö´Â ¸®´ª½ºÆ÷Ä¿½ºÀÇ ÆíÁýÆÀ¿¡ ÀÇÇØ °ü¸®µË´Ï´Ù. © Brent B. Welch LinuxFocus 1999 |