Perguntas com a marcação «functional-programming»

A programação funcional é um paradigma de programação que utiliza principalmente funções como meio para construir abstrações e expressar cálculos que compreendem um programa de computador.

1
Quais classes de estruturas de dados podem ser feitas persistentes?
Estruturas de dados persistentes são estruturas de dados imutáveis. As operações neles retornam uma nova "cópia" da estrutura de dados, mas alterada pela operação; a estrutura de dados antiga permanece inalterada. A eficiência geralmente é alcançada compartilhando alguns dos dados subjacentes e evitando a cópia completa da estrutura de dados. …


3
Como fazer uma linguagem homoicônica
De acordo com este artigo, a seguinte linha de código Lisp imprime "Hello world" na saída padrão. (format t "hello, world") O Lisp, que é uma linguagem homoicônica , pode tratar o código como dados da seguinte maneira: Agora imagine que escrevemos a seguinte macro: (defmacro backwards (expr) (reverse expr)) …






2
As funções de ordem superior fornecem mais poder à programação funcional?
Fiz uma pergunta semelhante no cstheory.SE . De acordo com esta resposta no Stackoverflow, existe um algoritmo que em uma linguagem de programação funcional pura e não preguiçosa possui uma complexidade , enquanto o mesmo algoritmo na programação imperativa é . Adicionar preguiça à linguagem FP tornaria o algoritmo .Ω(nlogn)Ω(nlog⁡n)\Omega(n …




1
As propriedades, como o uso de memória de uma função, podem ser expressas em um idioma digitado de forma dependente?
Suponha que alguém queira raciocinar sobre propriedades do código além de coisas como totalidade e pureza funcional - também se preocupa com o consumo de memória ou com a complexidade algorítmica de uma função. Isso pode ser feito através de sistemas de digitação e efeitos dependentes?

2
Implementação de estrutura de dados imutável (persistente) semelhante a uma matriz com indexação rápida, acréscimo, pré-acréscimo, iteração
Estou procurando uma estrutura de dados persistente semelhante à matriz (mas imutável), permitindo operações rápidas de indexação, acréscimo, pré-acréscimo e iteração (boa localidade). O Clojure fornece Vector persistente, mas é apenas para anexação rápida. O vetor de Scala efetivamente anexa e pré-anexa em tempo constante, mas não consigo entender como …


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.