Groovy Vs. Prolog Vs. Python
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
zalamero xD
todos sabemos que tú en Prolog me pegas sopas con hondas :-p
(y seguramente en groovy vs python también xD)
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.
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)
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”.