Updated: vài lời nhảm nhí
Updated: add eggdrop
Tcl - Tool Command LanguageUpdated: add eggdrop
Nếu muốn học Python, nhảy đến đây
Tại sao lại là TCL?
- đơn giản
- dễ học
- dễ dùng
- nhỏ nhẹ
- it's fun :x (và đây cũng là điều quan trọng nhất, bởi suy đi tính lại, điều quan trọng nhất trong việc học hành là bạn có thích hay không - bạn có thể đưa ra lý do là bận? nhưng 1 ngày tôi chỉ có thời gian từ 23H trở đi để chơi thôi :v )
Học để xin việc đâu đó?
Có lẽ sẽ chỉ là 1 điểm cộng,còn xin việc dùng tcl ở VN chắc không có :3
Tốt nhất là bạn nên kiếm một công việc không quá bận rộn để còn có thời gian hưởng những thú vui trên đời. Khi chưa có việc, trong thời buổi này, thì cạp đất mà ăn à, sống vẫn phải thực dụng chứ :3. Công việc sẽ chi phối những gì bạn học. Đến lúc có việc rồi, bạn tha hồ học những gì mình thích.
Đơn giản?
Toàn bộ cú pháp của Tcl chỉ nằm gỏn gọn trong 12 điều luật, và chỉ cần cài tcl rồi man là thấy.
Tcl đã implement những khái niệm từ rất lâu, sau này các ngôn ngữ khác mới "học lại" và được khen như là phát minh vĩ đại :3. Có thể kể đến như
Historically speaking, Tcl's support for events and their handling started in the Tk package, written the year after Tcl's introduction at the 1990 Usenix conference. From there it moved into Tcl proper in 1996, around Tcl 7.5, more than a decade ago. Ever since then we've enjoyed event support as part of the core language, without a need for a separate package (like Python's Twisted or Ruby's EventMachine).Những điều nối tiếng trong thế giới tcl:
-- http://www.activestate.com/blog/2010/05/concurrency-tcl-events-without-getting-twisted
- expect : dùng code để tương tác với các chương trình cần tương tác, sử dụng nhiều trong tự đống hóa các công việc quản trị hệ thống
- tk: giúp viết giao diện GUI 1 cách nhanh chóng
- hping: dùng để test network, ddos.... :3
- eggdrop: bot IRC phổ biến nhất thế giới, có thể script bằng TCL
Tài liệu
http://wiki.tcl.tk/20789
http://www.invece.org/tclwise/frontcover.html
http://stackoverflow.com/questions/1136735/getting-started-with-tcl-tk
http://www.yosefk.com/blog/i-cant-believe-im-praising-tcl.html
....
Cài đặt
Để cài trên Ubuntu # đã test trên 12.04
sudo apt-get install -y tcl
Lời kết
đừng dành quá nhiều thời gian để đọc những bàn luận quanh tcl, về việc nó sắp chết, không có oop, hay design lỗi ...
hãy dành thời gian đó để học 12 luật của tcl và code tcl, tự cảm nhận lấy. Ít ra, bạn cũng đang đọc những lời viết ra từ một người đã từng kiếm tiền bằng Java, PHP, Bash, Python :3
PS:
ai học có gì hay thì thả vào đây
hết.
Goals:
- 12 ngày học 12 luật của tcl
- regex
- coroutine
- network and scripting
Historically
speaking, Tcl's support for events and their handling started in the Tk
package, written the year after Tcl's introduction at the 1990 Usenix
conference. From there it moved into Tcl proper in 1996, around Tcl 7.5,
more than a decade ago. Ever since then we've enjoyed event support as
part of the core language, without a need for a separate package (like
Python's Twisted or Ruby's EventMachine). - See more at:
http://www.activestate.com/blog/2010/05/concurrency-tcl-events-without-getting-twisted#sthash.I6znx9mv.dpuf
Ngày 1:
ReplyDeleteif else , for, variable
hvn@archhvn: ~ () $ tclsh
% puts "hello thon"; puts "hello do"
hello thon
hello do
% set foo bar
bar
% puts $foo
bar
% if {5 > 4} {
puts "CCMNR"
} else {
puts "cha bao gio roi vao day ca"
}
CCMNR
foreach và list:
Delete% set members "meo cho ga vit lon"
meo cho ga vit lon
% foreach i $members {
puts $i
}
meo
cho
ga
vit
lon
% foreach a [list 1 2 3 4] b [list c java php python] {
puts a b
}
can not find channel named "a"
% foreach a [list 1 2 3 4] b [list c java php python] {
puts $a $b
}
can not find channel named "1"
% foreach a [list 1 2 3 4] b [list c java php python] {
puts "$a $b"
}
1 c
2 java
3 php
4 python
Rule1:
Delete# a tcl script is a string
# comntain one or more commands
#
# semicolon & newline ard command separator
# close bracket are cmd terminator
Ngày 2:
ReplyDeletechạy câu lệnh bên ngoài và láy kết quả vào dùng:
% foreach i [exec seq 1 3] {
puts $i
}
1
2
3
%
chào bạn mình phải cài những phầm mêm hay công cụ gì để có thể viết tcl/tk bạn nhỉ? nhờ chỉ giáo thêm
ReplyDeletetrên Ubuntu, bạn mở terminal lên và cài bằng apt-get
Deletesudo apt-get install -y tcl
co 2 ngay thoi ha ban oi
ReplyDeleteuh, mình rất hay học những cái mới và quên mất là mình đang học dở :))
Deleteminh hoi ban 1 chut la minh chay thu cai lenh if trong ngay 1 cua ban ma k chay dc. chi jup minh duoc k
Deletecụ thể câu lệnh bạn chạy là câu nào?
Deletebạn cần:
gõ tclsh để mở tcl shell
sau đó gõ:
if {5 > 4} {
puts "CCMNR"
} else {
puts "cha bao gio roi vao day ca"
}
rồi enter
minh go dong if sau do enter de xuong dong go tiep thi da bao loi roi
Deletecam on b
bạn có thể viết lên 1 dòng như sau:
Deletehttp://pastebin.com/uKJjWkr2
Nếu có lỗi gì bạn hãy copy và paste toàn bộ input/output vào đây mình mới có thể giúp được.
chao b
Deleteminh lam dc roi
minh hoi ban cai nay: minh chay 1 file tcl voi lenh nhu sau:
ns test.tcl
thi no bao loi ngay dong dau tien mac du do la dong chu thich.
gia su dong chu thich cua minh nhu sau:
# tao 1 doi tuong
cam on ban
ns test.tcl ???
Deletemình không rõ lệnh ns là lệnh gì.
Đây là ví dụ đơn giản:
(python2)hvn@archhvn: /tmp () $ tclsh test.tcl
FAMILUG
(python2)hvn@archhvn: /tmp () $ cat test.tcl
# fml
puts "FAMILUG"
if {[you still like tcl]} {I want to make friend!}
ReplyDelete