▁not ▁cause ▁difficulties ). ▁ ▁The ▁single ▁equality ▁sign ▁(= ) ▁serves ▁no ▁special ▁role ▁in ▁the ▁language ▁at ▁all . ▁The ▁double ▁equality ▁sign ▁( == ) ▁is ▁the ▁test ▁for ▁equality ▁which ▁is ▁used ▁in ▁expression ▁context s ▁such ▁as ▁the ▁expr ▁command ▁and ▁in ▁the ▁first ▁argument ▁to ▁if . ▁( B oth ▁commands ▁are ▁part ▁of ▁the ▁standard ▁library ; ▁they ▁have ▁no ▁special ▁place ▁in ▁the ▁library ▁and ▁can ▁be ▁replaced ▁if ▁desired .) ▁ ▁The ▁majority ▁of ▁T cl ▁commands , ▁especially ▁in ▁the ▁standard ▁library , ▁are ▁vari adic , ▁and ▁the ▁proc ▁( the ▁constructor ▁for ▁script ed ▁command ▁procedures ) ▁allows ▁one ▁to ▁define ▁default ▁values ▁for ▁un spec ified ▁arguments ▁and ▁a ▁catch - all ▁argument ▁to ▁allow ▁the ▁code ▁to ▁process ▁arbitrary ▁numbers ▁of ▁arguments . ▁ ▁T cl ▁is ▁not ▁stat ically ▁typed : ▁each ▁variable ▁may ▁contain ▁integers , ▁flo ats , ▁strings , ▁lists , ▁command ▁names , ▁diction aries , ▁or ▁any ▁other ▁value ; ▁values ▁are ▁re inter pre ted ▁( subject ▁to ▁s ynt actic ▁constraints ) ▁as ▁other ▁types ▁on ▁demand . ▁However , ▁values ▁are ▁imm utable ▁and ▁operations ▁that ▁appear ▁to ▁change ▁them ▁actually ▁just ▁return ▁a ▁new ▁value ▁instead . ▁ ▁Basic ▁commands ▁ ▁The ▁most ▁important ▁commands ▁that ▁refer ▁to ▁program ▁execution ▁and ▁data ▁operations ▁are : ▁ ▁set ▁writes ▁a ▁new ▁value ▁to ▁a ▁variable ▁( cre ates ▁a ▁variable ▁if ▁did ▁not ▁exist ). ▁If ▁used ▁only ▁with ▁one