[comp.lang.misc] extension languages can be darn small, yet still powerfull

peter@ficc.ferranti.com (Peter da Silva) (09/10/90)

In article <180@smds.UUCP> rh@smds.UUCP (Richard Harter) writes:
> There is a lot of similarity between Lakota and TCL; certainly the style
> is similar.  Lakota looks like this:

> procedure change_extension file old new
> 	set_list file_fields [split . (file)]
> 	point_to_end_of file_fields
> 	if not [equal? (file_fields) (old)] return
> 	mv (file) [separate . [left_part_of file_fields]].(new)

> $xxx <-> (xxx)
> [op arg ...] <-> [op arg ...]
> block structure by indentation rather than {}

> However I was in error.  Everything is a list of strings rather than
> a string. Lists have an associated pointer into the list to give a
> current value.

That seems like a handy model. Strictly speaking in TCL you get the value
of a variable with [set varname], with $varname being a shortcut like
quote in lisp. I have an implementation of property lists (associative
arrays) that save and restore to RFC-822 style files. Lists could be
implemented the same way. One of the goals of TCL, and I think it's
met that goal admirably, is to make it convenient to add new verbs in
C.

> Oh yes, who is doing TCL and where can one get information on it?

John Ousterhout at Berkeley (ouster@sprite.berkeley.edu). I have a
port to Xenix 286 and System V/386. Karl Lehenbauer (karl@sugar.hackercorp.com)
has a port to the Amiga and a more up-to-date System V port. There
is a VMS port out there somewhere.
-- 
Peter da Silva.   `-_-'
+1 713 274 5180.   'U`
peter@ferranti.com