Inicio > Desarrollo, Groovy > Groovy Vs. Prolog Vs. Python

Groovy Vs. Prolog Vs. Python

Domingo, 11 de octubre de 2009 chechu Dejar un comentario Ir a comentarios

Esto no va a ser una comparativa exhaustiva entre Groovy, Prolog y Python, simplemente unos snippets que intercambiamos mi colega fortran y yo hace un tiempo.

Contextualizemos: yo no sé Python, él no sabe Groovy, y probablemente el conocimiento que tiene él sobre Python es mayor que el que tengo yo sobre Groovy. Lo de Prolog tiene que ver con la universidad, el ansia por terminar prácticas y espinitas clavadas :-) . Lo cierto es que hoy por hoy él controla mucho más que yo en programación lógica.

Quizás a alguien le resulte interesante, y en cualquier caso servirá en el futuro para recordar lo que éramos capaces de hacer (en ocasiones las mierdas del pasaso parecen ahora inalcanzables, no me lo negarás).

Conseguir una lista de 100 número aleatorios, ordenarla e imprimirla

Python

import random
print sorted(random.randint(0,2**31)for i in range(100))

Prolog

r([]).
r([H|T]):-random(0,1000000,H),r(T).
f(L):-length(X,100),r(X),sort(X,L).

Groovy

a=[]
100.times{a<<(int)(Math.random()*(2**31))}
print a.sort()

Encontrar el indice de una sublista dentro de otra

Python

def f(a,b):
 l=[a[i:i+len(b)]for i in range(len(a))]
 return b in l and l.index(b)or-1

Prolog

s(X,[]).
s([H|T],[H|U]):-s(T,U).
f(X,Y,0):-s(X,Y).
f([_|T],Y,N):-f(T,Y,M),N is M+1.

Groovy

def f(a,b){return Collections.indexOfSubList(a,b)}
Categories: Desarrollo, Groovy Tags:
  1. Domingo, 11 de octubre de 2009 a las 17:12 | #1

    zalamero xD

    todos sabemos que tú en Prolog me pegas sopas con hondas :-p

  2. Domingo, 11 de octubre de 2009 a las 17:13 | #2

    (y seguramente en groovy vs python también xD)

  3. Domingo, 11 de octubre de 2009 a las 17:24 | #3

    Ya sabes que hace un mes me pillé un libro de la bilbioteca sobre Prolog, por recordar viejos tiempos. No lo llegué a abrir, no digo más.

  4. Domingo, 11 de octubre de 2009 a las 20:17 | #4

    por cierto, explica que se trataba de “code golf”, es decir, conseguir el hoyo en el menor número de golpes posibles (o escribir el programa en el menor número de carácteres posible)

  5. Domingo, 11 de octubre de 2009 a las 20:31 | #5

    Para ser sincero nunca supe lo que era eso de “code golf”, yo me limitaba a atender tu desafío de “a ver en cuanto carácteres eres capaz de hacerlo”.

  1. Sin trackbacks aún.