Lenguajes de programación

Hoy estaba comentando com mi primo acerca de lo mucho más claro que es el lenguaje Python frente al tradicional C. Aquí un ejemplo que hace una factorial:


  1 def fac(n, total=1):
  2     if n > 1:
  3             return fac(n-1, n*total)
  4     else:
  5         print total
  6 fac(int(raw_input("Introducir un numero del que hacer el factorial\n=>")))

Esto era python. Poca cosa. A ver C:


  1 #include stdio.h
  2
  3
  4 int factorial(n, total) {
  5         if (n > 1) {
  6                 return factorial(n-1, n*total);
  7                 }
  8         else {
  9                 printf("\n\ntotal = %d\n\n", total);
 10                 return total;
 11         }
 12 }
 13 int main() {
 14         printf("Introducir un numero del que hacer el factorial\n=>");
 15         int a;
 16         scanf("%d", &a);
 17         factorial(a, 1);
 18         return 0;
 19         }

Vale, sí, ambos se pueden compactar y ambos algoritmos (que son el mismo) pueden mejorarse. Pero ahí queda la diferencia entre uno y otro. Bueno, y después de esto que no interesa a nadie (o sí, estaría bien que alguien lo comentara) venía a lo siguiente:como me aburro mucho me apetece abrir una de esas discusiones típicas de los más recónditos foros de discusión de programadores y demás fauna informática: ¿Qué lenguaje de programació preferís? ¿Cuál para cada tipo de programa? ¿Acaso os interesa la programación? ¿Os parece una parida aprender? ¿A qué huele un cerebro vivo?

Cosas.

Levitar »« Evolución Natural

6 comentarios para “Lenguajes de programación”

  1. Andreu escribió el día

    Viva phyton xDDD

  2. Guill3m escribió el día

    Me lo has dejado claro, quiero aprender programación (con tiempo) y por lo que veo seguramente me decante por Phyton…

  3. Azelath escribió el día

    Mejor:

      1 def fac(n):
    2 if n > 1: return n*fac(n-1)
    3 else: return 1
    4 print fac(int(raw_input("=>")))
  4. Azelath escribió el día

    Aunque ya no interesa, he reducido la factorial a una línea.

    fac = lambda x: x and x*fac(x-1) or 1

    Bueno, hay que usar otra línea para llamarla, de la forma:

    fac(6) o fac(int(raw_input("=>")))

    Pero mooola.

  5. Hindarian escribió el día

    int factorial (int n){
    int r, i;
    for (i=0,r=1;n>1;i++){
    r=r*n;
    n–;
    }
    return r;
    }

    Iterativamente es más eficiente xD. Yo por ahora prefiero el C, ya que es el único que manejo con relativa soltura. A pesar de todo, soy consciente que lenguajes como Python son más cómodos en la mayoría de las situaciones (eso sí, en cuanto a eficiencia y posibilidades el C es el mejor si descartamos el ensamblador y el binario xDD).

  6. RuFo escribió el día

    ¿Vale GW-Basic como lenguaje? :mrgreen:

Los comentarios quedaron congelados cuando el blog se apagó. Este es un archivo de solo lectura.