fp.

Uma biblioteca para programação em um estilo funcional
Baixe Agora

fp. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Stevan Little
  • Site do editor:
  • http://search.cpan.org/~stevan/

fp. Tag


fp. Descrição

Uma biblioteca para programação em um estilo funcional FP é um módulo Perl, um experimento em programação funcional. Não usa nada além de uma combinação de; sub-rotinas, a matriz @_ e alguns operadores construídos para implementar um estilo de programação funcional.None do código acima é tão interessante até que você considere que em nenhum momento a atribuição variável (=), se declarações ou não recursivas iteração utilizada. Embora, seja totalmente honesto, na verdade, há duas vezes quando o operador = é usado em todo o módulo. A primeira vez é atribuir a versão do módulo, a segunda vez está dentro da rotina de importação, mas essas não são realmente partes desta biblioteca e realmente mais infastructure de qualquer maneira. Atribuição variável não é utilizada, em vez disso, o conteúdo do array @_ argumento é acessado / manipulado e passado como o retorno dos valores de funções. A recursão é o único meio de iteração, não usamos nenhum dos mecanismos de iteração construídos de Perl (para, foreach, enquanto, etc.). Todas as funções são não destrutivas para suas entradas, e quase tudo retorna uma matriz de algum tipo, então a corrente de chamada de chamada funciona muito bem. Ele opera apenas em listas planas apenas, uma vez que a Perl irá achatar quaisquer matrizes como argumentos. Este código também é escrito sem efeitos colaterais. O que significa que cada função é escrita para expressar um algoritmo que produz seu resultado em vez de produzir seu resultado através da coerção de efeitos colaterais. Aqui está um exemplo do que quero dizer, usando funções de predicado par / ímpares. Com efeitos colaterais: sub is_even {(($ _ % 2) == 0); } sub is_odd {(($ _ % 2)! = 0); } Sem efeitos laterais: sub is_even {($ _ <= 0)? TRUE: IS_ODD ($ _ - 1); } sub is_odd {($ _ <= 0)? FALSE: IS_EVEN ($ _ - 1); } Sinopse usa fp; # filtro Tudo seja o filtro de números par (função {is_even (cabeça (@_))}, intervalo (1, 100)); # dividir a string, obter uma lista exclusiva fora dele # então pegue o comprimento dessa lista e, em seguida, verifique # igual a 26 is_equal_to (len (exclusivo (explodido (a raposa marrom rápida saltou sobre o cão preguiçoso e correu para baixo estrada "))), 26); # A soma dos números 1 a 10 é 55 IS_EQUAL_TO (SUM (intervalo (1, 10)), 55); Requisitos: · Perl.


fp. Software Relacionado