critcl : exemples

 

dc Cette page réunit quelques exemples simples de critcl


Une table de cosinus renvoyée sous forme de liste (code paru sur fclt) :

 package require critcl

 critcl::ccode {
    #include <math.h>
    #define pi acos(-1)
 }

 critcl::ccommand tableCos {dummy interp objc objv} {
   Tcl_Obj* liste ;
   double c ;
   int i;
   //
   liste = Tcl_NewObj();
   //
   for (i=0;i<360;i++) {
     c = cos((i * pi) / 180);
     Tcl_ListObjAppendElement (interp, liste, Tcl_NewDoubleObj (c) ) ;
   }
   //
   Tcl_SetObjResult(interp , liste);
   //
   return TCL_OK;
 }

 set listeCos [tableCos]
 set angleD 25
 set c [lindex $listeCos $angleD]
 puts "cos(${angleD}°) ~= $c"