Они в основном одинаковы:
Определяет команду без аргументов
proc dosomething {} {
#code here
}
То же, что и выше, определяет команду без аргументов
proc dosomething { } {
#code here
}
Недействительно ... должно выдать ошибку
proc dosomething {
#code here
}
Определяет команду с переменным количеством аргументов (т. Е. Varargs)
proc dosomething args {
#code here
}
Определяет команду в пространстве имен верхнего уровня без аргументов (в большинстве случаев аналогична первым двум)
proc ::dosomething {} {
#code here
}
Нет такой вещи, как местный процесс, кстати. Они могут находиться внутри пространства имен, но все процессы являются глобальными.