Feda /dev/

desu

Mi ultima subida fue de 18k y la proxima espero que tambien.

Alguien pls si sabe resolver mi duda que me de una pista... Mañana me lo miro.

1 respuesta
Soulscx

alejate de la pr0gramacion funcional, poca eficiencia y manera de pensar de autistas

_Rpv

#41491 Si te contratan no cuenta como subida.

1 respuesta
desu

#41493 Ya estaba contratado. Tienes razón, es una subida de 11k. Espero que la próxima sea de 18.

eXtreM3

#41487 :man_shrugging: te dice que result no está definido?

1 respuesta
QuitCat

#41477 ¿Para una relación? Si lo metes como JSON -> String, ¿como vas a realizar búsquedas sobre ese campo?

1 respuesta
desu

#41495 El código esta "bien" desde el punto de vista que "funciona" pero quiero evitar declarar una variable MUTABLE fuera de la SCOPE del while. Quiero hacerlo funcional e inmutable. Quiero un código "mejor".

Yo he hecho el código con una función tailrec. Mi duda es si en lenguajes modernos (kotlin, swift, scala(moderno...xd)) o llamemosles lenguajes más potentes lo puedo declarar de manera funcional. Por ejemplo se me ha ocurrido un generedador de valores lazy que voy llamando según la condición. Quiero evitar re inventar la rueda y evitar encapsular mi código en un objeto más complejo.

Se entiende?

Esta duda es un poco avanzada para el nivel medio del hilo, mejor será que los que haceis web os aparteis...

Edit 1: https://www.mediavida.com/foro/estudios-trabajo/tres-dudas-basicas-contrato-laboral-641827#1

2 respuestas
privet

tenia 2 horas de javascript y la profesora no ha venido... estará buscando tutoriales por youtube para entender algo

eXtreM3

#41497 empezabas a caerme bien y has vuelto a tu punto inicial hdp.

1 respuesta
desu

#41499 No te imaginas como me he reido en casa con la ultima frase.


A ver esto lo se hacer yo y todo el mundo xd. Y es lo que he implementado que cumple con mis requerimientos, ahora...

Quiero saber si en kotlin, scala etc. Existe una manera "idomatica" / "patron tipico" de hacer

funcion extreme = devuelve un numero random entre 0 y 10000
funcion main {
  val resultado = extreme.minetras( v != 500)
}

La funcion extreme se ejecutaria mientras el valor que produzca no sea 500.
Ahora veo que quizás puedo hacer unas "extension function" para simularlo... Pero me sigue pareciendo raro que no haya una funcion predefinida.

Tuskus

Pero si ya es funcional, si nos has dicho que funciona!

Zoko

Todo eso para que le estén explotando en su trabajo pagandole cuatro duros.
Mantente becario xdddddd

zoeshadow

#41497

Haz una clase que extienda de Iterator y le vas dando los números según te los vaya pidiendo:

class ColorIterator(val start: CustomColor, val endInclusive: CustomColor) : Iterator<CustomColor> {
 
var initValue = start
 
override fun hasNext(): Boolean {
    return initValue <= endInclusive
}
 
override fun next(): CustomColor {
    return initValue++
}
}
1 respuesta
desu

#41503 No quiero un iterador, quiero un "generador" que solo genere 1 objeto y lo vaya cambiando.

La verdad es que no sé si me estas trolleando. Creo que la pregunta esta clara despues de los ejemplos... En caso que no seas troll, yo no tengo ninguna lista de elementos a iterar, yo quiero crear esta lista/objeto/Type y parar de crearla con una condición. Esto serían Sequences en kotlin por ejemplo, pero no es lo que busco.

2 respuestas
zoeshadow

#41504 El iterador funciona como generador, y el tiene la condición para dejar de generar elementos:

Por ejemplo, un generador de números del 0 al 10:

class NumberIterator() : Iterator<Int> {
 
var value = 0
 
override fun hasNext(): Boolean {
    return value >= 10
}
 
override fun next(): Int {
    value = value + 1
    return value
}
}
1 respuesta
Grise

#41496 Depende del motor puede que tengan el tipo JSON de manera nativa y tienen operaciones pensadas para ellos, por ejemplo http://www.postgresqltutorial.com/postgresql-json/

La idea no es que uses el JSON para buscar información dentro de él (aunque según el motor se pueda hacer), si no para guardar información inmutable.

Por ejemplo, en tu programa montas un grid de clientes a partir de un JSON, en tu BD te guardas esa información directamente como un JSON y cuando vayas a montar el grid accedes únicamente a ese campo "SELECT json_datos FROM clientes". Así reduces overhead en la BD porque solo pillas un campo y tiempo computacional en el programa.

_Rpv

Para vuestras casas/proyectos personales tenéis vuestro propio servidor de git o usáis uno como GitHub?

1 respuesta
zoeshadow

#41507 Siempre usaba bitbucket por lo de los repos privados gratis, ahora que GitHub los da también GitHub para todo

desu

#41505 Si ahora lo he entendido, no acabé de entender tu mensaje y no miré el código xd.

Sigue sin ser lo que busco. Me lo voy a mirar ahora en más detalle igualmente. Para empezar es un patrón de oop que me gustaría evitar. Tercero has encapsulado el problema de la mutabilidad de tu variable resultado. No hace falta impementar iterador ya que nunca lo iteraré, pero capto la idea ya que lo voy a usar con un while. Lo positivo es que este "iterador" lo podré inicializar y esa variable será "correcta".

val iterator = Iterador.init()
while(iterator.isInvalid()) iterator.generate()
// tengo iterador en scope porque esta inicializado fuera del while. y es una referencia const.

No es lo que busco, el problema de la mutabilidad lo mantengo dentro del iterador... Aunque podría encapsular el objeto resultado y ya... Me parece una buena solución OOP, mejor que el do/while a pelo, pero no es la que busco.

Bueno, plantearé esta solución escondiendo todo dentro del "iterador" que propones haciéndolo privado, así solo harás Iterator.init(). Gracias es bueno tener todas las alternativas.

1 respuesta
B
import random

def generator(f, min, max):
    while True:
        i = random.randint(min, max)
        if i == f:
            break
        yield i
        
print([i for i in generator(5, 0, 10)])
1 respuesta
desu

#41510 Si esto son las sequencias/lazy que comentaba, es lo primero que he mirado, no me gustan porque me parece que solo "tapas" el problema, tienes mutabilidad. Es mas eficiente que la opción recursiva o la "iterator"?

Yo lo que buscaba es un one-line idiomatico de lenguajes "modernos".

Me haré un benchmark cutre a ver como escalan.

privet

no sabia que este hilo era para los deberes del cole, me haceis los mios?

1 respuesta
afhn

no

1 respuesta
desu

#41512 Bro ni es trabajo ni son deberes. Es un problema que se me ha ocurrido y me parece raro que no haya algo ya hecho para lo que busco.

Algo tan sencillo como ejecuta esta funcion mientras se cumpla una condición... Osea la función recursiva es toque pero que me hagan picarla y no este ya hecha en las librerias standards... xd De estos lenguajes que en teoria son modernos y toda la peshca.

2 respuestas
afhn

#41514 tú no eras partidario de hacer las cosas a mano?

X-Crim

:o

zoeshadow

#41509 También puedes hacer una mezcla, es decir, un generador que te de números (con un estado interno, randoms o que los saque de un API) y usar las extension functions que te da Kotlin sobre clases que implementen Iterator, como takeWhile que te permite definir fuera de esa clase cuando quieres dejar pedir números.

Lo fuerte de Kotlin (y de Scala) es que mezclas lo mejor de OOP con patrones funcionales, al fin y al cabo ese código es lo mismo que tener una función recursiva a la que le pasas el último valor generado para generar el siguiente, pero mucho más legible.

1 respuesta
privet

#41513
Venga crack, al tajo, que no tengo todo el día

#41514 Te crees Thomas Edison?

1 1 respuesta
X-Crim

lamentable

B

xdddddddddddddd

Tema cerrado