Skip to content

Instantly share code, notes, and snippets.

View marcoonroad's full-sized avatar
🦋
the Future() has been CANCELLED and we .Restart() the DEAD Event[] from the past

Marco Aurélio da Silva marcoonroad

🦋
the Future() has been CANCELLED and we .Restart() the DEAD Event[] from the past
View GitHub Profile
@marcoonroad
marcoonroad / ObfuscatedFact.pl
Last active August 29, 2015 14:06
Try something as 'perl thisScript.pl 1 2 3 4 5 6 7 8 9 10' on command-line...
use warnings;
# === Clean way: =============================== #
# use List::Util qw/ product /; #
# sub factorial { product 1 .. $_[0] } #
# print factorial 5; #
# ============================================== #
sub{print @_,"\n"}->(sub{sub{my($c,$r)=(shift,1);;
$r=$c->($r,$_)for@_;$r}->(shift,1..shift)}->(&{sub
@marcoonroad
marcoonroad / LazyFib.pl6
Last active August 29, 2015 14:06
Perl 6 power over Fibonacci sequence.
#!/usr/bin/perl6
use v6;
my @fib := ^2, *+* ... *; # lazy list with fibonacci sequence under memoization
sleep +(.say) for @fib;
# foreach @fib get a $value, so print this $value, then cast the Bool result of say (True)
# into a Integer, now you can pass this Integer (1) for a sleep (delay $x seconds) function...
@marcoonroad
marcoonroad / cds-p5.pl
Created September 15, 2014 16:34
Playing with complex data Structures at Perl 5...
#!/usr/bin/perl
use feature qw/ say /;
use warnings;
my @Array = ([1 .. 10], [11 .. 20], [21 .. 30]);
my $CodeRef = sub { shift; say for @_ };
for (0 .. 2) {
unshift @{ $Array[$_] }, \&{ $CodeRef };
@marcoonroad
marcoonroad / JustLangWar-Lua.md
Last active August 29, 2015 14:06
Lua não é forte o suficiente para o problema (ou não).

[DESAFIO / LANGUAGE WAR]

Implemente um programa em sua linguagem favorita, aonde o usuário digita um número x qualquer, e o programa calcula a soma dos x primeiros números pares da sequência fibonacci, imprimindo depois, a soma dos algarismos desse número.

Por exemplo, quando x <- 5, a resposta é 17, pois:

  1. A sequência fibonacci é [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, ...].
  2. Os 5 primeiros números pares são [0, 2, 8 e 34, 144].
  3. O somatório disso tudo é 188 (List::Util::sum @array).
  4. Somando os algarismos, 1 + 8 + 8 -> 17 (substring de string).
/*
[DESAFIO / LANGUAGE WAR] Implemente um programa na sua linguagem favorita onde o usuário digita um número x, e o programa calcula o somatório dos x primeiros números pares da sequência fibonacci, e imprime a soma dos algarismos desse número.
Por exemplo, quando x = 5, a resposta é 17, pois:
1. A sequência fibonacci é 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,...
2. Os 5 primeiros números pares são 0, 2, 8 e 34, 144.
3. O somatório disso é 188.
4. Somando os algarismos, 1+8+8 = 17
@marcoonroad
marcoonroad / JustLangWar-Perl6.pl6
Last active August 29, 2015 14:06
Lento porém elegante, tente algo como "$ perl6 ThisScript.pl6 15" no terminal...
#!/usr/bin/perl6
use v6;
sub MAIN ($x) {
([+] ([+] ((^2, * + * ... *).grep(* %% 2))[^$x]).comb).say;
}
# [DESAFIO / LANGUAGE WAR]
#
module Fib using: Platform where
open Platform Prelude expose [+, parse, as-string, ~]
open Platform List expose [zip:using:, map:, take:, filter:, sum]
open Platform IO expose [read-line, print]
-- Typing things is currently cumbersome, but the type inference algorithm should catch 90% of this
let (Num a) => String -> a ::
x as-number = x parse
@marcoonroad
marcoonroad / cpl.pl6
Last active August 29, 2015 14:06
Jogo de caça-palavras aleatório.
#!/usr/bin/perl6
use v6;
# caça-palavras em P6
"Só um outro jogo de caça-palavras...".say;
"Diga o número de === colunas ~ linhas ===.".say;
my $limite = prompt "Qual o limite que você quer?" ~ " ";
my @numeros = ^$limite;
@marcoonroad
marcoonroad / multimutual.pl
Last active August 29, 2015 14:06
Only a experiment on Perl version 5.20...
#!/home/usuario/localperl/bin/perl
# multidispatch functions
use v5.20;
use feature qw/ say signatures /;
use strict;
use warnings;
#------------------------------------------------#
@marcoonroad
marcoonroad / LinkedList.pl
Last active August 29, 2015 14:06
Just another Lisp/Prolog-like lists test.
#!/home/user/localperl/bin/perl
use v5.20;
use strict;
use warnings;
# linked lists test
use feature qw| say signatures |;
use Data::Dumper;