[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Default values for block parameters

Matt Mower

1/31/2005 5:38:00 PM

Hi.

I want to dynamically create (i'm trying to use define_method) a
method using which has default values for it's parameters. However
when I try to do:

define_method "name" lambda { |x=1,y=2,z=3| f(x,y,z) }

I get a syntax error on the x=1 part. Am I just using the wrong
syntax? Or is it really not possible to create methods with default
parameter values dynamically?

Regards,

Matt

--
Matt Mower :: http://matt...


11 Answers

Robert Klemme

1/31/2005 6:30:00 PM

0


"Matt Mower" <matt.mower@gmail.com> schrieb im Newsbeitrag
news:d563731905013109382bbeef75@mail.gmail.com...
> Hi.
>
> I want to dynamically create (i'm trying to use define_method) a
> method using which has default values for it's parameters. However
> when I try to do:
>
> define_method "name" lambda { |x=1,y=2,z=3| f(x,y,z) }
>
> I get a syntax error on the x=1 part. Am I just using the wrong
> syntax? Or is it really not possible to create methods with default
> parameter values dynamically?

I guess you will have to do

define_method( "name" ) { |*a| f(a[0]||1, a[1]||2, a[2]||3) }

Or something similar.

Kind regards

robert


Matt Mower

1/31/2005 6:45:00 PM

0

Hi Robert,

On Tue, 1 Feb 2005 03:30:46 +0900, Robert Klemme <bob.news@gmx.net> wrote:
>
> "Matt Mower" <matt.mower@gmail.com > schrieb im Newsbeitrag
> news:d563731905013109382bbeef75@mail.gmail.com...
> > Hi.
> >
> > I want to dynamically create (i'm trying to use define_method) a
> > method using which has default values for it's parameters. However
> > when I try to do:
> >
> > define_method "name" lambda { |x=1,y=2,z=3| f(x,y,z) }
> >
> > I get a syntax error on the x=1 part. Am I just using the wrong
> > syntax? Or is it really not possible to create methods with default
> > parameter values dynamically?
>
> I guess you will have to do
>
> define_method( "name" ) { |*a| f(a[0]||1, a[1]||2, a[2]||3) }
>
> Or something similar.
>

Ah, thank you -- I had thought of using || to get the defaults but not
to use |*a| to allow parameters to be passed, or not, which is the
vital bit.

Since this workaround is a touch unaesthetic I wonder whether there
was a particular reason for not allowing default values to be
specified for block parameters? Do you happen to know?

Thanks again.

M

--
Matt Mower :: http://matt...


Robert Klemme

2/1/2005 8:08:00 AM

0


"Matt Mower" <matt.mower@gmail.com> schrieb im Newsbeitrag
news:d563731905013110444211811e@mail.gmail.com...
> Hi Robert,
>
> On Tue, 1 Feb 2005 03:30:46 +0900, Robert Klemme <bob.news@gmx.net>
wrote:
> >
> > "Matt Mower" <matt.mower@gmail.com > schrieb im Newsbeitrag
> > news:d563731905013109382bbeef75@mail.gmail.com...
> > > Hi.
> > >
> > > I want to dynamically create (i'm trying to use define_method) a
> > > method using which has default values for it's parameters. However
> > > when I try to do:
> > >
> > > define_method "name" lambda { |x=1,y=2,z=3| f(x,y,z) }
> > >
> > > I get a syntax error on the x=1 part. Am I just using the wrong
> > > syntax? Or is it really not possible to create methods with default
> > > parameter values dynamically?
> >
> > I guess you will have to do
> >
> > define_method( "name" ) { |*a| f(a[0]||1, a[1]||2, a[2]||3) }
> >
> > Or something similar.
> >
>
> Ah, thank you -- I had thought of using || to get the defaults but not
> to use |*a| to allow parameters to be passed, or not, which is the
> vital bit.
>
> Since this workaround is a touch unaesthetic I wonder whether there
> was a particular reason for not allowing default values to be
> specified for block parameters? Do you happen to know?

Dunno, but here's my guess: since blocks are usually called at a single
place in code (as opposed to a method) default parameters do not make much
sense generally.

Kind regards

robert

Mark Hubbart

2/1/2005 9:27:00 AM

0

On Tue, 1 Feb 2005 17:10:50 +0900, Robert Klemme <bob.news@gmx.net> wrote:
>
> "Matt Mower" <matt.mower@gmail.com> schrieb im Newsbeitrag
> news:d563731905013110444211811e@mail.gmail.com...
> > Hi Robert,
> >
> > On Tue, 1 Feb 2005 03:30:46 +0900, Robert Klemme <bob.news@gmx.net>
> wrote:
> > >
> > > "Matt Mower" <matt.mower@gmail.com > schrieb im Newsbeitrag
> > > news:d563731905013109382bbeef75@mail.gmail.com...
> > > > Hi.
> > > >
> > > > I want to dynamically create (i'm trying to use define_method) a
> > > > method using which has default values for it's parameters. However
> > > > when I try to do:
> > > >
> > > > define_method "name" lambda { |x=1,y=2,z=3| f(x,y,z) }
> > > >
> > > > I get a syntax error on the x=1 part. Am I just using the wrong
> > > > syntax? Or is it really not possible to create methods with default
> > > > parameter values dynamically?
> > >
> > > I guess you will have to do
> > >
> > > define_method( "name" ) { |*a| f(a[0]||1, a[1]||2, a[2]||3) }
> > >
> > > Or something similar.
> > >
> >
> > Ah, thank you -- I had thought of using || to get the defaults but not
> > to use |*a| to allow parameters to be passed, or not, which is the
> > vital bit.
> >
> > Since this workaround is a touch unaesthetic I wonder whether there
> > was a particular reason for not allowing default values to be
> > specified for block parameters? Do you happen to know?
>
> Dunno, but here's my guess: since blocks are usually called at a single
> place in code (as opposed to a method) default parameters do not make much
> sense generally.

I think that's a good assessment... I think historically, they may
have been considered superfluous. But it could change in the future;
with the addition of &block syntax in a block's parameter list
(available now, in 1.9, and later, in 2.0), it might be that block
parameter lists are going to be made more consistent with method
parameter lists.

Maybe :)

cheers,
Mark

>
> Kind regards
>
> robert
>
>


Matt Mower

2/1/2005 11:59:00 AM

0

On Tue, 1 Feb 2005 18:27:28 +0900, Mark Hubbart <discordantus@gmail.com> wrote:
> On Tue, 1 Feb 2005 17:10:50 +0900, Robert Klemme <bob.news@gmx.net > wrote:
> > > Since this workaround is a touch unaesthetic I wonder whether there
> > > was a particular reason for not allowing default values to be
> > > specified for block parameters? Do you happen to know?
> >
> > Dunno, but here's my guess: since blocks are usually called at a single
> > place in code (as opposed to a method) default parameters do not make much
> > sense generally.
>
> I think that's a good assessment... I think historically, they may
> have been considered superfluous. But it could change in the future;
> with the addition of &block syntax in a block's parameter list
> (available now, in 1.9, and later, in 2.0), it might be that block
> parameter lists are going to be made more consistent with method
> parameter lists.
>

Robert, Mark, thanks for your views. That was really helpful.

M

--
Matt Mower :: http://matt...


Robert Klemme

2/1/2005 1:43:00 PM

0


"Matt Mower" <matt.mower@gmail.com> schrieb im Newsbeitrag
news:d563731905020103585443f29a@mail.gmail.com...
> On Tue, 1 Feb 2005 18:27:28 +0900, Mark Hubbart <discordantus@gmail.com>
wrote:
> > On Tue, 1 Feb 2005 17:10:50 +0900, Robert Klemme <bob.news@gmx.net >
wrote:
> > > > Since this workaround is a touch unaesthetic I wonder whether
there
> > > > was a particular reason for not allowing default values to be
> > > > specified for block parameters? Do you happen to know?
> > >
> > > Dunno, but here's my guess: since blocks are usually called at a
single
> > > place in code (as opposed to a method) default parameters do not
make much
> > > sense generally.
> >
> > I think that's a good assessment... I think historically, they may
> > have been considered superfluous. But it could change in the future;
> > with the addition of &block syntax in a block's parameter list
> > (available now, in 1.9, and later, in 2.0), it might be that block
> > parameter lists are going to be made more consistent with method
> > parameter lists.

Even more so if you view blocks / lambdas as nameless functions, which you
can with some justification.

> Robert, Mark, thanks for your views. That was really helpful.

You're welcome!

Kind regards

robert

PL

9/29/2009 9:24:00 AM

0

tschmidtundert wrote:
> On Sep 28, 12:42 pm, PL <pl.nos...@pandora.be> wrote:
>> Albert wrote:
>>> Video extra: ?Qu? son los Comit?s de Defensa de la Revoluci?n (CDRs)?
>> CUBA - CDR - BRR - CONTINGENTEShttp://www.youtube.com/watch?v=b...
>>
>> CUBA Los CDR Comites de Defensa de la Revolucionhttp://www.youtube.com/watch?v=r...
>>
>> Mas:http://www.cubaverdad.n...
>>
>> PL
>
> Deber?an llamarse Cuba mentira, hasta en el nombre mienten.
>
> T.Schmidt
> P.S. A m? tambien me gusta decir mentiras de vez en cuando
(snip)

"de vez en cuando".
MDR.
Pero gracias por ya decir a la gente que pueden ignorar lo que dices
Herr SSchmidt.

"Teddy Schmidt" aka "Herr SSchmidt", racista y antisemita aka "Se?or
Pip?" sobre su
credibilidad: (sus palabras)

- "soy viejo y me gusta decir mentiras"
http://groups.google.be/group/soc.culture.cuba/msg/7efb857d232a...
- "Y ya he dicho como cien veces que chequeen lo que digo, que no
siempre la verdad es lo que digo"
http://groups.google.be/group/soc.culture.cuba/msg/2532e3cde9b17e51?dmode=3Dsource&a...
- "Tambien es bueno que recuerden que no soy un servicio informativo,
lo que digo a veces es mentira, por eso tienen que verificar."
http://groups.google.com/group/soc.culture.cuba/msg/fabb58173745a32e?dmod...
- "Mentiroso soy a veces, pero es facil descubrirme"
http://groups.google.com/group/soc.culture.cuba/msg/8a4fde90c34ba79b?dmode=3Dsource&a...


PL

PL

9/29/2009 9:36:00 AM

0

tschmidtundert wrote:
> On Sep 28, 1:57 pm, PL <pl.nos...@pandora.be> wrote:
>> Albert wrote:
>>> "PL" <pl.nos...@pandora.be> wrote in message
>>> news:fs7wm.221137$LX3.155810@newsfe17.ams2...
>>>> Albert wrote:
>>>>> Video extra: ?Qu? son los Comit?s de Defensa de la Revoluci?n (CDRs)?
>>>>> http://www.youtube.com/watch?v=P...
>>>> CUBA - CDR - BRR - CONTINGENTES
>>>> http://www.youtube.com/watch?v=b...
>>> PL, ?a ti te pagan por mentira o qu??
>> No y no digo mentiras.
>> Pero a ti Albert, te pagan?
>> Me parece que para ti es normal de ser pagado por tus mentiras.
>>
>>> ?Has pensado de qu? vas a vivir si se cae la Revoluci?n Cubana?
>> Cuba cada d?a es mas cerca de la libertad.
>>
>>> ?A qui?n
>>> vas a vender tus mentiras?
>> No "vendo mentiras" como tu.
>> Regalo verdades.
>>
>> Como siempre: el hecho que necesitas insultos y mentiras muestras que
>> puedes negar nada.
>>
>> Lo que corto Albert por miedo que la gente lo podr?an ver:
>>
>> CUBA - CDR - BRR - CONTINGENTEShttp://www.youtube.com/watch?v=b...
>>
>> CUBA Los CDR Comites de Defensa de la Revolucionhttp://www.youtube.com/watch?v=r...
>>
>> Mas:http://www.cubaverdad.n...
>>
>> PL
>
> Lo que regalas es veneno.

No, la verdad y la verdad de sobre Fidel es destructivo.

Fidel Castro esta en la lista de "Genocide Watch" por sus acciones.
(Genocide Watch es el coordinador de la campa?a internacional para
terminar genocidio)
http://www.genocide...
http://www.genocide...aboutgenocide/genocidespoliticides.html
Mas informaci?n: sobre las victimas de Castro:
http://cubaarchive.org/home...

PL

PL

9/29/2009 12:35:00 PM

0

tschmidtundert wrote:
> On Sep 28, 2:13 pm, TORREBLANCA?? <donquicove...@gmail.com> wrote:
>> On 28 sep, 14:35, "Albert" <m...@somewhere.nl> wrote:
>>
>>>> los cubanos brindan por el ??xito de su Revoluci??n.
>> cual ??xito ? qu?? celebran ? en qu?? consiste su "exito " ? cu??l es
>> el prop??sito de la revoluci??n logrado que "los cubanos celebran y por
>> lo que brindan " seg??n usted ? por favor, exponga esos exitos al
>> mundo....
>
> Yo creo que el principal ??xito ha sido mantener a los gringos afuera.

y su esfuerzo mas grande de mantener los Cubanos adentro.
Desde que cogi?? el poder no pueden salir ni entrar libremente a su
proprio pa??s en contra de lo que estipulan los derechos humanos.

Las personas que solicitan permiso de salida deben acompa??ar a la
solicitud una comunicaci??n del centro de trabajo o de estudio en la que
consten sus caracter??sticas como trabajador o estudiante, un certificado
de antecedentes penales y, si el viaje fuere motivado por visitas a
familiares o amigos, la invitaci??n formulada por ??stos e informaci??n
sobre ellos.

Los permisos de salida para visitas de familiares en el extranjero son
expedidos casi autom??ticamente para los cubanos mayores de 60 a??os de
edad. Aquellos m??s j??venes pueden visitar a sus familiares en el
extranjero solamente en situaciones de emergencia tales como enfermedad
o muerte.


La Ley de Inmigraci??n y la Ley de Extranjer??a en Cuba - Conexion Cubana
! (29 September 2009)
http://www.conexioncubana.net/index.php?st=content&sk=view&id=4357&am...


Salida Ilegal del Territorio Nacional

ART??CULO 216. 1. El que, sin cumplir las formalidades legales, salga o
realice actos tendentes a salir del territorio nacional, incurre en
sanci??n de privaci??n de libertad de uno a tres a??os o multa de
trescientas a mil cuotas.

2. Si para la realizaci??n del hecho a que se refiere el apartado
anterior, se emplea violencia o intimidaci??n en las personas o fuerza en
las cosas, la sanci??n es de privaci??n de libertad de tres a ocho a??os.

3. Los delitos previstos en los apartados anteriores se sancionan con
independencia de los que se cometan para su ejecuci??n o en ocasi??n de ella.

ART??CULO 217. 1. El que organice, promueva o incite la salida ilegal de
personas del territorio nacional, incurre en sanci??n de privaci??n de
libertad de dos a cinco a??os.

2. El que preste ayuda material, ofrezca informaci??n o facilite de
cualquier modo la salida ilegal de personas del territorio nacional,
incurre en sanci??n de privaci??n de libertad de uno a tres a??os o multa
de trescientas a mil cuotas.

Rule of Law and Cuba
http://www.ruleoflawandcuba.fsu.edu/law-pena...



tschmidtundert

9/29/2009 5:08:00 PM

0

On Sep 29, 6:35 am, PL <pl.nos...@pandora.be> wrote:
> tschmidtundert wrote:
> > On Sep 28, 2:13 pm, TORREBLANCA® <donquicove...@gmail.com> wrote:
> >> On 28 sep, 14:35, "Albert" <m...@somewhere.nl> wrote:
>
> >>>> los cubanos brindan por el éxito de su Revolución.
> >> cual éxito ?  qué celebran ?  en qué consiste su  "exito "  ?  cuál es
> >> el propósito de la revolución logrado que  "los cubanos celebran y por
> >> lo que brindan " según usted ?  por favor, exponga esos exitos al
> >> mundo....
>
> > Yo creo que el principal éxito ha sido mantener a los gringos afuera.
>
> y su esfuerzo mas grande de mantener los Cubanos adentro.
> Desde que cogió el poder no pueden salir ni entrar libremente a su
> proprio país en contra de lo que estipulan los derechos humanos.
>
> Las personas que solicitan permiso de salida deben acompañar a la
> solicitud una comunicación del centro de trabajo o de estudio en la que
> consten sus características como trabajador o estudiante, un certificado
> de antecedentes penales y, si el viaje fuere motivado por visitas a
> familiares o amigos, la invitación formulada por éstos e información
> sobre ellos.
>
> Los permisos de salida para visitas de familiares en el extranjero son
> expedidos casi automáticamente para los cubanos mayores de 60 años de
> edad. Aquellos más jóvenes pueden visitar a sus familiares en el
> extranjero solamente en situaciones de emergencia tales como enfermedad
> o muerte.
>
> La Ley de Inmigración y la Ley de Extranjería en Cuba - Conexion Cubana
> ! (29 September 2009)http://www.conexioncubana.net/index.php?st=content&sk=view&id=4......
>
> Salida Ilegal del Territorio Nacional
>
> ARTÍCULO 216. 1. El que, sin cumplir las formalidades legales, salga o
> realice actos tendentes a salir del territorio nacional, incurre en
> sanción de privación de libertad de uno a tres años o multa de
> trescientas a mil cuotas.
>
> 2. Si para la realización del hecho a que se refiere el apartado
> anterior, se emplea violencia o intimidación en las personas o fuerza en
> las cosas, la sanción es de privación de libertad de tres a ocho años.
>
> 3. Los delitos previstos en los apartados anteriores se sancionan con
> independencia de los que se cometan para su ejecución o en ocasión de ella.
>
> ARTÍCULO 217. 1. El que organice, promueva o incite la salida ilegal de
> personas del territorio nacional, incurre en sanción de privación de
> libertad de dos a cinco años.
>
> 2. El que preste ayuda material, ofrezca información o facilite de
> cualquier modo la salida ilegal de personas del territorio nacional,
> incurre en sanción de privación de libertad de uno a tres años o multa
> de trescientas a mil cuotas.
>
> Rule of Law and Cubahttp://www.ruleoflawandcuba.fsu.edu/law-pena...

Yo no veo para qué necesita Fidel mantener flojos en Cuba, que los
mande para Miami. El que no trabaja, no come.

T.Schmidt