Why is tcl broken?
Paul Duffin
pduffin at mailserver.hursley.ibm.com
Fri Jun 11 07:59:27 EDT 1999
Fernando Mato Mira wrote:
>
> Bob Techentin wrote:
>
> > These flame wars are more than five years old. Tcl has had namespaces
> > and a byte-code compiler for years.
>
> I know that. But I see some serious things there (the `call by name' issue,
> for example) that give me the impression must be still around unless
> the semantics have gone through a major change.
>
> I would cut this thread right here before someone comes up
> with some myth. There's enough work for debunkers there.
>
> Thanks,
Tcl does not have 'call by name' semantics.
In fact its calling semantics are remarkably like C's.
C only supports call by value
Tcl only supports call by value
In C if you want to pass a "reference" you pass a pointer
In Tcl if you want to pass a "reference" you pass a variable name
"Call by name" has some very particular characteristics the main one
being that you cannot implement "swap". I can assure you that you can
write a swap function in Tcl.
proc swap {&a &b} {
upvar ${&a} a
upvar ${&b} b
set t $a
set a $b
set b $t
}
--
Paul Duffin
DT/6000 Development Email: pduffin at hursley.ibm.com
IBM UK Laboratories Ltd., Hursley Park nr. Winchester
Internal: 7-246880 International: +44 1962-816880
More information about the Python-list
mailing list