close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#1397 closed doubt (fixed)

Error en PutDescription con una función dentro de otra función — at Version 1

Reported by: imendez Owned by: Víctor de Buen Remiro
Priority: normal Milestone: Mantainance
Component: Kernel Version: head
Severity: normal Keywords:
Cc:

Description (last modified by Víctor de Buen Remiro)

Hola, al poner descripción a una función creada dentro de otra función da error. El código es:

Real FunPrueba1(Real r)
{
  Real funPrueba2(Real k)
  { 2*k };
  PutDescription("Prueba", funPrueba2);
  r/2
};
Real AA = FunPrueba1(Pi);

Y el error:

ERROR: [2] funPrueba2 no es un objeto valido para el tipo Real.

[Call stack]
  [1] Real FunPrueba1 (Real r)

Warning: [5] La función PutDescription ha fallado en : 
PutDescription("Prueba", funPrueba2)

Sin entrar a ver si tiene mucho sentido hacer eso, ¿es normal que dé error?

Un saludo.

Change History (1)

comment:1 Changed 13 years ago by Víctor de Buen Remiro

Description: modified (diff)
Resolution: fixed
Status: newclosed

En el ámbito global el tipo por defecto es el de la última expresión, mientras que en las funciones es el tipo de retorno de la función. Al escribir PutDescription sin especificar de qué tipo se utiliza el tipo por defecto que es Real y como no hay ningún objeto Real funPrueba2 pues te da error. No veo qué problema ves ahí. Lo que hay que hacer es poner el tipo adecuado a este caso que es el Code.

Real FunPrueba1(Real r)
{
  Real funPrueba2(Real k)
  { 2*k };
  Code PutDescription("Prueba", funPrueba2);
  r/2
};
Real AA = FunPrueba1(Pi);
Note: See TracTickets for help on using tickets.