fp-pragmatic
Ajuda seu agente a explicar programação funcional de forma prática. Ensina a obter resultados sem complicação.
O que ela faz
Este guia ensina os conceitos essenciais da programação funcional de forma prática, focando no que realmente importa para melhorar seu código sem complicação.
Quando usar
- ✓Para começar a usar programação funcional em TypeScript.
- ✓Ao explorar ideias de programação funcional de forma rápida (80/20).
- ✓Para entender quando a programação funcional ajuda e quando simplificar.
Exemplo do que pedir para a IA
“Como posso começar com programação funcional em TypeScript de forma simples?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele foca em padrões úteis e evita jargões acadêmicos, mostrando como aplicar os conceitos que trazem resultados reais.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill fp-pragmaticOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/fp-pragmatic/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Programação Funcional Pragmática
Leia isto primeiro. Este guia elimina o jargão acadêmico e mostra o que realmente importa. Sem teoria de categorias. Sem bobagens abstratas. Apenas padrões que tornam seu código melhor.
Guia Detalhado
Leia o guia detalhado antes de executar esta habilidade. Ele retém o procedimento completo e o material de referência. Trate seus requisitos de segurança, pré-requisitos e validação como obrigatórios. Para trabalho focado, carregue as seções relevantes; para trabalho de ponta a ponta, leia o guia completamente.
Quando Usar
- Você quer um ponto de partida pragmático para fp-ts ou programação funcional em TypeScript.
- A tarefa é exploratória ou educacional e precisa de uma visão 80/20 do que realmente vale a pena adotar.
- Você precisa de orientação sobre quando FP ajuda e quando é melhor manter o código simples.
Quando NÃO Usar FP
Programação funcional nem sempre é a resposta. Veja quando manter a simplicidade.
Verificações Simples de Nulo
// Just use optional chaining - it's built into the language
const city = user?.address?.city ?? 'Unknown'
// DON'T overcomplicate it
const city = pipe(
O.fromNullable(user),
O.flatMap(u => O.fromNullable(u.address)),
O.flatMap(a => O.fromNullable(a.city)),
O.getOrElse(() => 'Unknown')
)
Loops Simples
// A for loop is fine when you need early exit or complex logic
function findFirst(items: Item[], predicate: (i: Item) => boolean): Item | null {
for (const item of items) {
if (predicate(item)) return item
}
return null
}
// DON'T force FP when it doesn't help
const result = pipe(
items,
A.findFirst(predicate),
O.toNullable
)
Código Crítico para Desempenho
// For hot paths, imperative is faster (no intermediate arrays)
function sumLarge(numbers: number[]): number {
let sum = 0
for (let i = 0; i < numbers.length; i++) {
sum += numbers[i]
}
return sum
}
// fp-ts creates intermediate structures
const sum = pipe(numbers, A.reduce(0, (acc, n) => acc + n))
Quando Sua Equipe Não Conhece FP
Se você é o único que consegue ler o código, não é um bom código.
// If your team knows this pattern
async function getUser(id: string): Promise<User | null> {
try {
const response = await fetch(`/api/users/${id}`)
if (!response.ok) return null
return await response.json()
} catch {
return null
}
}
// Don't force this on them
const getUser = (id: string): TE.TaskEither<Error, User> =>
pipe(
TE.tryCatch(() => fetch(`/api/users/${id}`), E.toError),
TE.flatMap(r => r.ok ? TE.right(r) : TE.left(new Error('Not found'))),
TE.flatMap(r => TE.tryCatch(() => r.json(), E.toError))
)
Limitações
- Use esta habilidade apenas quando a tarefa corresponder claramente ao escopo descrito acima.
- Não trate a saída como substituta para validação específica do ambiente, testes ou revisão de especialistas.
- Pare e peça esclarecimentos se faltarem entradas, permissões, limites de segurança ou critérios de sucesso necessários.
Perguntas frequentes
O que é programação funcional?
É um estilo de programar onde você constrói software pensando em funções que transformam dados, em vez de mudar o estado das coisas.
Quando NÃO devo usar programação funcional?
Evite quando um código simples resolve o problema (como checagens de nulo fáceis), ou se sua equipe não está familiarizada com o estilo.
Este guia ensina tudo sobre programação funcional?
Não, ele foca nos 20% dos conceitos que trazem 80% dos resultados, cortando o jargão acadêmico.
Detalhes
Descrição original do autor
A practical, jargon-free guide to functional programming - the 80/20 approach that gets results without the academic overhead
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3031
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC