[Xotcl] ensemble alias

Gustaf Neumann neumann at wu-wien.ac.at
Fri Jan 6 03:04:51 CET 2012


In cases, where no ensemble command is available from tcl, 
one can use as an additional option to the forward an interp 
alias like in the following example:

% package req nx
% interp alias {} foo {} string is boolean
% foo true
1
% foo hi
0
% Object create o { :public alias stringIsBoolean foo }
::o
% o stringIsBoolean true
1

-gustaf neumann

On 05.01.12 23:22, Stefan Sobernig wrote:
> Victor,
>
>> Is it possible to have an alias to ensemble or multi-word 
>> commands?
>
> Well, namespace ensembles are straight forward; you may 
> find out the ensembled Tcl commands using e.g. [namespace 
> ensemble configure string -map] and then use the 
> fully-qualified command names as alias target:
>
> package req nx::test
>
> Object create o {
>   :public alias stringLength ::tcl::string::length
> }
>
> ? {o stringLength "xyz"} [string length "xyz"]
>
> If you don't have an ensemble command at hand (e.g., the 
> [string is] classes such as "integer", "boolean"), you 
> want to bind in terms of a method, consider a forwarder:
>
> o public forward stringIsBoolean string is boolean
>
> ? {o stringIsBoolean "false"} [string is boolean "false"]
>
> A forwarder is needed, because the "boolean" selector does 
> not map to a Tcl command, rather is an argument to a 
> paramteric Tcl command (::tcl::string::is).
>
> A mixed alternative would be ...
>
> o public alias stringIs ::tcl::string::is
> o public forward stringIsBoolean2 %self stringIs boolean
>
> ? {o stringIsBoolean2 "false"} [string is boolean "false"]
>
> //stefan
> _______________________________________________
> Xotcl mailing list
> Xotcl at alice.wu-wien.ac.at
> http://alice.wu-wien.ac.at/mailman/listinfo/xotcl



More information about the Xotcl mailing list