Read My Mind And Do What I Mean - a frequently requested functionality See TIP 131 [http://purl.org/tcl/tip/131] ---- [RS] 2004-07-28 - The RMM part still awaits implementation, but if you transport mind over [stdin], here's an initial implementation: proc do args { puts [uplevel 1 $args] } proc what {who verb} { puts -nonewline "what do you $verb? " flush stdout uplevel 1 [gets stdin] } while 1 {do what I mean} ---- [PT] 2004-07-29 The division between the functional aspects of RMMADWIM into RMM and a separate DWIM leads me to think about alternative transports than just [stdin]. The implementation above could trivially be recoded as a network server or even a Web service. Sticking with [KISS] I consider that the ideal network protocol for the correct transport of DWIM data will be the [LOAF] protocol. [LOAF] is unique compared to other network protocols in that everything is specified to ''just work'' which is in keeping with the spirit of the RMMADWIM specification. [RS] Hm.. but LOAF does nothing, doesn't it? The code above implements at least the classic read-eval-print loop as known from [Lisp], or any interactive tclsh... :) [PT] No - it may be that [LOAF] ''seems'' to be doing nothing. However, in fact it is doing just what is expected. However, I don't mean that the [LOAF] protocol should be replacing your read-eval-print loop. Instead I offer the concept of [RMMADWIM] over [LOAF]. In the above example [stdin] would be replaced by a [LOAF]ful stream implementation. In a similar manner we can envisage RMMADWIM/[SOAP], or RMMADWIM/[BEEP] [http://www.ietf.org/rfc/rfc3080.txt] or encapsulation within [IP] [http://www.ietf.org/rfc/rfc791.txt] or [BLOAT] [http://www.ietf.org/rfc/rfc3252.txt] datagrams. ---- [Category Acronym]