Gracias "DAFYRZA" y "Pasales", si bien aun me queda hacer varias
pruebas para 'domar el caballo', creo que han resuelto
satisfactoriamente mi duda.
Creo que la mejor manera de darles las gracias es mostrando la
solución que Ustedes me ayudaron a encontrar para entender los
codeblocks:
-
1. Un codeblock se define: { | [parametro(s)] | codigo }
2. Permite definir procesos especificos o genericos y que no
necesariamente tiene que ver con salida a pantalla u obtener un
resultado como si se tratase de una función.
3. Al EVALuar { |x| x } el resultado es como una funcion que solo
regresa el mismo parametro que se le dio.
4. El planteamiento "tonto" que hice de usar codeblocks para obtener
el nombre del dia de una fecha -en cDia- "sin asignar el array de
dias a una variable" se resolveria como sigue:
-
* "" y +1 resuelven el caso de EMPTY(dFecha) si no fuera DATE()
* porque en ese caso DOW() regresa 0
cDia := EVAL( {|x| x} ,
{"", "Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado
"}[ DOW(DATE())+1 ] )
? cDia
*
* claro que el código resulta mas claro con asignaciones previas
acSemana :=
{"", "Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado
"}
bBlock := { |x| x }
cDia := EVAL( bBlock, acSemana[ DOW(DATE())+1 ] )
? cDia
*
* aunque es obvio que lo mas facil sería...
cDia := acSemana[ DOW(DATE())+1 ]
? cDia
-
-
Por último, lamento amezarlos con proximas dudas, talvez incluso
sobre este mismo tema.
GRACIAS.