20-08-2015 19:57
20-08-2015 23:55
(20-08-2015 19:57)Jase [ -> ]¿Pero eso lo entiendes?
Claro, tú no?┬á
Na, al final es estudiarselo sin más. Es una sintaxis como otra cualquiera, pero más enrevesada.
21-08-2015 00:13
Creo que puedo dar gracias de que no voy a trabajar ensamblador nunca xD
06-10-2015 11:37
Buenas @jase
te contesto por aquí, pa levantar esto
http://www.oracle.com/technetwork/databa...59378.html
ahí creo que se puede descargar la gratis.. que es la Oracle Express Edition 10g
porque a veces aparecen la Enterprise y que gratis pero en lo que empiezas a crear objetos te dice que necesitas una licencia
pl/sql se usa mucho, la banca privada por ejemplo tiene seudocodigo basado en pl/sql que de por si se necesita unos dos años para medio entenderlo jajajaja
te contesto por aquí, pa levantar esto
http://www.oracle.com/technetwork/databa...59378.html
ahí creo que se puede descargar la gratis.. que es la Oracle Express Edition 10g
porque a veces aparecen la Enterprise y que gratis pero en lo que empiezas a crear objetos te dice que necesitas una licencia
pl/sql se usa mucho, la banca privada por ejemplo tiene seudocodigo basado en pl/sql que de por si se necesita unos dos años para medio entenderlo jajajaja
06-10-2015 11:40
"The version of Oracle Database you are looking for is no longer available on OTN."
Explícame qué es eso de programación orientada a objetos en bases de datos. Sólo sé hacer consultas y manejar datos, pensaba que consistía en eso
Explícame qué es eso de programación orientada a objetos en bases de datos. Sólo sé hacer consultas y manejar datos, pensaba que consistía en eso
06-10-2015 11:54
eso me pasa por las prisas
@jase aqui tienes la version 11 y 12 http://www.oracle.com/technetwork/databa...92322.html
que te sirven igual, a nivel de desarrollo no hay mucha diferencia
de 10 a 11 es más de eficiciencia de motor y que agregaron objetos clob (para textos muy grandes)
y algunas librerias para desarrollo en web
OTN es el foro de oracle
en pl/sql tienes librerias de funciones.. y creas packages, stored procedures
que puedes llamar desde cualquier sitio del desarrollo
@jase aqui tienes la version 11 y 12 http://www.oracle.com/technetwork/databa...92322.html
que te sirven igual, a nivel de desarrollo no hay mucha diferencia
de 10 a 11 es más de eficiciencia de motor y que agregaron objetos clob (para textos muy grandes)
y algunas librerias para desarrollo en web
OTN es el foro de oracle
en pl/sql tienes librerias de funciones.. y creas packages, stored procedures
que puedes llamar desde cualquier sitio del desarrollo
06-10-2015 12:16
Guay, pues esta noche me lo bajo
Y no te saltes lo de la explicación
Y no te saltes lo de la explicación
06-10-2015 12:47
@jase te lo he explicado
es esto "en pl/sql tienes librerias de funciones.. y creas packages, stored procedures
que puedes llamar desde cualquier sitio del desarrollo"
es esto "en pl/sql tienes librerias de funciones.. y creas packages, stored procedures
que puedes llamar desde cualquier sitio del desarrollo"
06-10-2015 14:32
Tambien puede utilizar postgresql que es totalmente gratis y tambien tiene soporte para procedimientos almacenados y toda la pesca. Pero ademas si quiere enlazarlo con java lo mejor es dejarse de procs y usar un ORM como es Hibernate, por ejemplo.
14-10-2015 18:32
A ver si podéis echarme un cable. Me puse a hacer un programa con python para invertir matrices mediante una descomposición LU. El método incluye una permutación de la matriz, para lo que hay que hacer una matriz de permutación vía pivotación parcial a partir de una matriz identidad. Osease, tenemos tres matrices:
Para hacer esto yo creé una función que me busca ese valor mayor y me devuelve su posición. Pero luego, mirando ejemplos de esto mismo en internet, me topé con que lo están haciendo metiendo un keyword con una función lambda en la función max(), y no entiendo de qué va el tema. He mirado el tema de funciones lambda y keywords y me pierdo. ¿Alguno podéis arrojar algo de luz al respecto de estas funciones lambda y los keyword?
Mi código para sacar la matriz P:
Y el código que vi y me dejó roto:
Y para usarlo por ejemplo tal que así:
Edito: Me cago en la leche, Merche, el foro se carga la identación. Apaña esto, Jase > : ( .
- La matriz a invertir --> M
- La matriz identidad --> I
- La matriz de permutación --> P
Para hacer esto yo creé una función que me busca ese valor mayor y me devuelve su posición. Pero luego, mirando ejemplos de esto mismo en internet, me topé con que lo están haciendo metiendo un keyword con una función lambda en la función max(), y no entiendo de qué va el tema. He mirado el tema de funciones lambda y keywords y me pierdo. ¿Alguno podéis arrojar algo de luz al respecto de estas funciones lambda y los keyword?
Mi código para sacar la matriz P:
Código:
def pivot(M):
def find_idx(j):
col = [ abs(M[i][j]) for i in range(j,r) ]
return j + col.index(max(col))
r = len(M)
P = [ [float(i == j) for i in range(r)] for j in range(r) ]
for j in range(r):
swap = find_idx(j)
if j != swap:
P[j], P[swap] = P[swap], P[j]
return P
Y el código que vi y me dejó roto:
Código:
def pivot(M):
r = len(M)
P = [ [float(i == j) for i in range(r)] for j in range(r) ]
for j in range(r):
swap = max( range(j,r), key=lambda i: abs(M[i][j]) )
if j != swap:
P[j], P[swap] = P[swap], P[j]
return P
Y para usarlo por ejemplo tal que así:
Código:
F = [2 ,3 ,4 ,4], [3 ,-1 ,7 ,2], [6 ,4 ,-4 ,0], [1 ,6 ,-2 ,1]
P = pivot(F)
for j in range( len(P) ):
print( [round(P[j][i],3) for i in range(len(P))] )
Edito: Me cago en la leche, Merche, el foro se carga la identación. Apaña esto, Jase > : ( .
15-10-2015 17:21
Me ha soplado Jase que @Lamont sabe de esto, así que lo invoco con un ritual malévolo .
15-10-2015 18:43
Hola, te pongo unos ejemplillos:
Las funciones lambda siguen la siguiente sintaxis básica:
Por ejemplo:
Su propósito en la vida es coger un valor y devolver otro sin alterar el estado del objeto que recibe como parámetro.
Python viene de serie con un conjunto de funciones que aceptan objetos iterables y funciones ( que pueden ser lambda, funciones normales, o cualquier objeto que se puede "llamar" con () ):
Por ejemplo la función map, aplica a cada elemento de una lista u objeto iterable una función:
Ahora lo mismo pero esta vez con funciones lambda:
La lista permanece intacta, map genera un nuevo objeto iterable que se puede combinar en otras expresiones.
Dentro de un función lambda, está permitido utilizar if en su expresión ternaria:
Un ejemplo un poco más complejo de funciones lambda sería el siguiente, por ejemplo como implementar la propia función map:
Es decir, aplicamos la función a elemento 0 de la lista, metemos ese valor dentro de una nueva lista:
[funcion(lista[0])]
y si todavía queda más de un elemento en la lista, llamamos de forma recursiva a _map con el resto de la lista _map(funcion, lista[1:]),
la sublistas se concatenan y al final obtiene lista final.
Volviendo a tu ejemplo, la función max devuelve el valor máximo de una lista:
max acepta otro argumento, key,  si max no recibe key, la key de cada elemento de la lista es el propio valor del elemento y max
se basa en la key para determinar cual es el elemento mayor.
Ahora bien, si por ejemplo, le pasamos la siguiente expresión lambda como key
Lo que hace es aplicar a cada elemento de la lista la función lambda para obtener la key:
Ahora la key máxima es 100, que pertenece al elemento 0. Por lo tanto devuelve 0.
Las funciones lambda siguen la siguiente sintaxis básica:
Código:
lambda lista_de_parámetros : valor de retorno
Por ejemplo:
Código:
multiplica = lambda a, b: a * b
multiplica(2, 5) -> devuelve 10
Su propósito en la vida es coger un valor y devolver otro sin alterar el estado del objeto que recibe como parámetro.
Python viene de serie con un conjunto de funciones que aceptan objetos iterables y funciones ( que pueden ser lambda, funciones normales, o cualquier objeto que se puede "llamar" con () ):
Por ejemplo la función map, aplica a cada elemento de una lista u objeto iterable una función:
Código:
lista = [1, 2, 3, 4, 5, 6, 7]
def dobla(a):
    return a * 2
map(dobla, lista) -> evalua a [2, 4, 6, 8, 10, 12, 14]
Ahora lo mismo pero esta vez con funciones lambda:
Código:
map(lambda a : a * 2, lista) -> evalua a  [2, 4, 6, 8, 10, 12, 14]
La lista permanece intacta, map genera un nuevo objeto iterable que se puede combinar en otras expresiones.
Dentro de un función lambda, está permitido utilizar if en su expresión ternaria:
Código:
mayorque10 = lambda n : True if n > 10 else False
mayorque10(100) -> True
mayorque10(9) -> False
Un ejemplo un poco más complejo de funciones lambda sería el siguiente, por ejemplo como implementar la propia función map:
Código:
_map = lambda funcion, lista : [funcion(lista[0])] + _map(funcion, lista[1:]) if len(lista) > 1 else [funcion(lista[0])]
Es decir, aplicamos la función a elemento 0 de la lista, metemos ese valor dentro de una nueva lista:
[funcion(lista[0])]
y si todavía queda más de un elemento en la lista, llamamos de forma recursiva a _map con el resto de la lista _map(funcion, lista[1:]),
la sublistas se concatenan y al final obtiene lista final.
Volviendo a tu ejemplo, la función max devuelve el valor máximo de una lista:
Código:
lista = [0, 10, 15]
max(lista) -> 15
max acepta otro argumento, key,  si max no recibe key, la key de cada elemento de la lista es el propio valor del elemento y max
se basa en la key para determinar cual es el elemento mayor.
Código:
Elemento   Key
0,         0
10,        10
15         15
Ahora bien, si por ejemplo, le pasamos la siguiente expresión lambda como key
Código:
max(lista, key=lambda a : 100 if a == 0 else a) -> evalua a 0
Lo que hace es aplicar a cada elemento de la lista la función lambda para obtener la key:
Código:
Elemento   Key
0,         100
10,        10
15         15
Ahora la key máxima es 100, que pertenece al elemento 0. Por lo tanto devuelve 0.