Bibliotecas
Vamos falar sobre os doces recheios embutidos no FatScript: as bibliotecas!
Bibliotecas padrão
Essenciais
Estas são as bibliotecas fundamentais que você espera que estejam disponíveis em uma linguagem de programação, fornecendo funcionalidades essenciais:
- async - Trabalhadores e tarefas assíncronas
- bridge - Ponte entre FatScript e bibliotecas C externas
- color - Códigos de cores ANSI para console
- console - Operações de entrada e saída do console
- curses - Interface de usuário baseada em terminal
- enigma - Métodos de criptografia, hash e UUID
- failure - Tratamento de erros e gerenciamento de exceções
- file - Operações de entrada e saída de arquivos
- http - Framework de manipulação HTTP
- math - Operações e funções matemáticas
- recode - Conversão de dados entre vários formatos
- sdk - Utilitários do kit de desenvolvimento de software do fry
- smtp - Framework de manipulação SMTP
- system - Operações e informações no nível do sistema
- time - Manipulação de data e hora
Pacote de tipos
Este pacote estende os recursos dos tipos nativos do FatScript:
Pacote Extra
Tipos adicionais implementados em FatScript puro:
- Date - Gerenciamento de calendário e datas
- Duration - Construtor de duração em milissegundos
- Fuzzy - Valores probabilísticos e operações de lógica fuzzy
- HashMap - Armazenamento rápido de chave-valor
- Logger - Suporte ao registro de logs
- Memo - Utilitário de memoização genérica
- MouseEvent - Parser de eventos de mouse
- Option - Encapsulamento de valor opcional
- Param - Verificação de presença e tipo de parâmetro
- Sound - Interface de reprodução de som
- Storable - Armazenamento de dados
Atalho de importação
Se você deseja torná-los todos disponíveis de uma vez, pode simplesmente fazer o seguinte, e todas essas coisas boas estarão disponíveis para o seu código:
_ <- fat._
Embora esse recurso possa ser conveniente ao experimentar no REPL, esteja ciente de que ele traz todas as constantes e nomes de método da biblioteca, potencialmente poluindo seu namespace global.
fat.std
Alternativamente, importe a biblioteca "standard" que importa todos os tipos (inclusive do pacote extra), bem como aplica importações nomeadas de todos os demais pacotes, assim:
_ <- fat.std
O que equivale a:
_ <- fat.type._
_ <- fat.extra._
async <- fat.async
bridge <- fat.bridge
color <- fat.color
console <- fat.console
curses <- fat.curses
enigma <- fat.enigma
failure <- fat.failure
http <- fat.http
file <- fat.file
math <- fat.math
recode <- fat.recode
sdk <- fat.sdk
smtp <- fat.smtp
system <- fat.system
time <- fat.time
Observe que, a importação de tudo antecipadamente pode adicionar uma sobrecarga desnecessária ao tempo de inicialização do seu programa, mesmo que você precise usar apenas alguns métodos.
Como boa prática, considere importar apenas os módulos específicos de que você precisa, com importações nomeadas. Dessa forma, você pode manter seu código limpo e conciso, minimizando o risco de conflitos de nome ou problemas de desempenho.
Hacking e mais
Sob o capô, as bibliotecas são construídas usando comandos embutidos. Para obter uma compreensão mais profunda e explorar o funcionamento interno do interpretador, mergulhe neste tópico mais avançado.