2009/4/30 Mario Domenech Goulart <[email protected]>:
> Passando os olhos rapidamente, não vi algumas possibilidades de cálculo
> de fatorial bem simples com Lisp (usando 10! nos exemplos e Chicken
> Scheme -- http://www.call-with-current-continuation.org).
>
> O fatorial de 10 é (* 10 9 8 7 6 5 4 3 2):

bem, vai ser um pouco cansativo para 100000! ;)

> $ cat reduce-fact.scm
> #!/usr/bin/csi -s
>
> (use numbers srfi-1)
>
> (print (reduce * '() (iota 10 1)))

Eu gosto mais do meu idioma, sem listas:
((range 2 100000) 1 *)

(range from to) retorna um iterador para a faixa.  É inspirado tanto
por range do Python quanto por fold/reduce e a função que retorna
recebe os mesmo argumentos desse último, exceto pela lista.

((range 100000 1) '() cons)

se quiser gerar uma lista. :)

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lisp-br" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/lisp-br?hl=en
-~----------~----~----~----~------~----~------~--~---

Responder a