Python - Función binaria en Python

 
Vista:
sin imagen de perfil

Función binaria en Python

Publicado por Angel (19 intervenciones) el 28/05/2013 10:07:40
Hola amigos:

Agradecería que alguien me pudiera dar un ejemplo de función binaria que pudiera introducir en fn para que me pudiera correr el siguiente script:

1
2
3
4
5
6
7
def flip(fn):
	return lambda a,b: fn (b,a)
 
def flip2(fn):
	def flipped(a,b):
		return fn (b,a)
	return flipped


Gracias por anticipado.
Saludos: Angel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Función binaria en Python

Publicado por xve (1646 intervenciones) el 28/05/2013 14:52:29
Hola Angel, no entiendo muy bien tu código...

porque tienes una función lambda dentro de una función? podría estar fuera de dicha función, no?

Sobre tu pregunta, no te entiendo muy bien a que te refieres.... si nos puedes comentar con mas detalle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Función binaria en Python

Publicado por Angel (19 intervenciones) el 28/05/2013 19:02:13
Hola xve:

Esta es una función flip (fn) que recibe una función binaria fn que devuelve otra función igual que fn pero con los parámetros intercambiados.

Solo quería saber un ejemplo de como puedo hacer correr este código sin que me salga ningún error.

Saludos: Angel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Función binaria en Python

Publicado por xve (1646 intervenciones) el 28/05/2013 20:00:51
Pero Angel, no lo puedes correr, ya que por ejemplo, a la función flip2, que entiendo que es la inicial, le pasas el nombre de una función (eso entiendo) y ahí dentro llamas a la función flipped, que tiene que recibir dos parámetros.

Para girar dos valores, basta con:
1
2
fn=lambda a,b: (b,a)
fn(4,2)


La verdad, no entiendo tu código...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Función binaria en Python

Publicado por Angel (19 intervenciones) el 29/05/2013 11:52:17
Hola xve:

Perdona pero quizás te he liado un poco, porque las dos definiciones de funciones tienen que dar el mismo resultado. Por eso cuenta solo con la primera definición:

1
2
def flip(fn):
	return lambda a,b: fn (b,a)


Yo he intentado hacerlo correr así:

1
2
3
>>> fn=(5,7)
>>> flip(fn)
<function <lambda> at 0x0136DAF0>


Pero en lugar de este resultado yo quisiera que me saliese (7,5), osea, los parámetros intercambiados, y no hay manera....

Saludos: Angel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Función binaria en Python

Publicado por xve (1646 intervenciones) el 29/05/2013 15:17:58
Hola Angel, la manera que yo veo, es así:
1
2
3
4
5
6
def flip(fn):
    x=lambda fn: (fn[1],fn[0])
    return x(fn)
 
fn=(5,7)
print flip(fn)

Este código te devuelve (7,5)

te sirve?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Función binaria en Python

Publicado por Angel (19 intervenciones) el 29/05/2013 16:49:49
Muchas gracias xve, me sirve.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar