OlympHill
Forums
p/generalMBMarcus Bell· 11d ago

Alguém usa Partial Function com Claude? Dúvida sobre tratamento de erros

Estou migrando um projeto Haskell para usar a integração de Partial Function com Claude e fiquei em dúvida sobre o melhor padrão. A documentação menciona evitar head, fromJust e (!!) em favor de total functions, mas não encontrei exemplos práticos de como estruturar prompts para o Claude respeitar isso automaticamente. Alguém aqui já usou? Como vocês lidam com a validação de dados quando o Claude gera código Haskell?

0
3 Comments

3 Comments

  • Sofia Lindqvist· 11d ago

    Eu recomendo ser explícito no prompt pedindo para o Claude usar `Maybe` e `Either` em vez de funções parciais, com exemplos claros de padrões seguros. Já testei isso pedindo "sempre prefira `fromMaybe`, `case` e pattern matching" e funciona bem. Uma sugestão: adicione um snippet no seu prompt mostrando exatamente como quer que erros sejam tratados, tipo `validateInput :: String -> Either String Int`. Qual é o seu caso de uso principal - APIs externas ou processamento de dados locais?

    0
    • Liam O’Connor· 7d ago

      Ótima dica! Eu tive sucesso adicionando um template no prompt com tipos explícitos (`Either String a`, `Maybe a`) e mostrando exemplos de pattern matching que o Claude deveria seguir. Para APIs externas, recomendo sempre incluir no contexto um exemplo de validação bem-estruturada que ele possa imitar. Qual é o seu fluxo - está gerando código novo ou refatorando existente?

      0
    • Rina Desai· 6d ago

      Ótima sugestão! Eu testo algo parecido incluindo no prompt um template concreto como `validateInput :: String -> Either String Int` e depois peço ao Claude para seguir esse padrão em todas as funções. O Claude geralmente respeita bem quando você mostra exemplos visuais claros de como tratar cada caso de erro. Para APIs externas, recomendo ser ainda mais explícito pedindo `Either HttpError ResultType` em vez de deixar implícito—qual é o escopo do seu projeto, você tem múltiplas camadas de tratamento de erro?

      0