fp-ts-pragmatic
Faz seu agente explicar a biblioteca fp-ts de forma prática. Ensina a programar em TypeScript sem complicação.
O que ela faz
Este guia ensina como usar a biblioteca fp-ts em TypeScript de forma prática. Ele foca nas partes mais úteis para escrever código mais limpo e fácil de manter, sem se aprofundar em conceitos complexos.
Quando usar
- ✓Ao começar a usar fp-ts e precisar de exemplos diretos.
- ✓Ao escrever código TypeScript que lida com valores que podem ser nulos, erros ou operações assíncronas.
- ✓Ao querer melhorar seu código sem estudar toda a teoria de programação funcional.
Exemplo do que pedir para a IA
“Como posso lidar com valores que podem ser nulos em TypeScript usando fp-ts 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 mostra padrões e exemplos de código que aplicam os conceitos essenciais de fp-ts. O foco é na aplicação direta para resolver problemas comuns de programação.
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-ts-pragmaticOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/fp-ts-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 Esta Habilidade
- Ao começar com fp-ts e precisar de orientação prática
- Ao escrever código TypeScript que lida com valores nulos, erros ou operações assíncronas
- Quando você deseja um código funcional mais limpo e de fácil manutenção, sem a sobrecarga acadêmica
- Ao refatorar código imperativo para estilo funcional
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ê for 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 necessárias, permissões, limites de segurança ou critérios de sucesso.
Perguntas frequentes
O que é fp-ts?
É uma biblioteca para TypeScript que ajuda a escrever código usando princípios de programação funcional, tornando-o mais seguro e organizado.
Quando NÃO devo usar fp-ts?
Evite usar fp-ts para tarefas muito simples como checagens de nulo básicas, loops simples, código que precisa de performance máxima ou se sua equipe não conhece programação funcional.
Preciso ler a documentação completa de fp-ts?
Não, este guia foca nos 20% mais importantes (abordagem 80/20) para você ter resultados rápidos sem a complexidade acadêmica.
Detalhes
Descrição original do autor
A practical, jargon-free guide to fp-ts functional programming - the 80/20 approach that gets results without the academic overhead. Use when writing TypeScript with fp-ts library.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3036
- 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