ocaml4noobs icon indicating copy to clipboard operation
ocaml4noobs copied to clipboard

Tutorial de OCaml para iniciantes na Linguagem.

ocaml

Tutorial de OCaml para iniciantes na Linguagem.

Report Bug · Request Feature

License MIT

ROADMAP

Parte 1 - Introdução

  • O que é OCaml?
  • História do OCaml
    • Resumo e Linha do Tempo
  • Instalação
  • Instalando o Dune
  • Hello World
  • Porque OCaml?
    • Concisa e Declarativa
    • Lingugens Concisas vs Verbosas
    • Menos Erros Acidentais
  • Particularidades de OCaml
    • Inferência de Tipos
    • Imutabilidade
    • Dados e Operações
  • Materiais em Inglês para aprender OCaml

Intermezzo 1 - Ferramentas

Escolha a sua:

  • VS Code
  • Emacs
  • VIM

Parte 2 - Funções

  • O que é uma função
    • Definição
    • Funções Constantes
    • Funções Lineares
    • Funções Quadráticas
    • Funções Trigonométricas
  • Aplicando Funções
    • Funções com um argumento
    • Funções com múltiplos argumentos
  • Tipos de função
    • Função de alta ordem
  • Currying
  • Função em prefixo e em infixo
    • Defininfo funções em infixo
  • Funções lambda
  • Recursão
  • Canalização
  • Composição de funções

Intermezzo 2 - Scripts e REPL

  • Scripts e REPL

Parte 3 - Dados

  • Tipos Pré-definidos
  • Tipos Básicos
  • Int
  • Float
  • Conversão de Tipos Numéricos
  • Char
  • String
    • Acessando caracteres em uma String
    • Módulo String
  • Bool
    • Operadores Booleanos
  • Unit
  • List
    • Combinando listas
  • Arrays
  • Tuplas
  • Records
    • Valores Mutáveis
    • Copiando e Alterando Valores
  • Discriminated Union
  • Pattern Matching
  • Igualdade Estrutural
  • Generics

Intermezzo 3 - Sistema de Build

  • Dune

Parte 4 - Organização do Código

  • Função Main
  • Módulos e Assinaturas
    • Assinaturas e Interfaces
    • Tipos Abstratos
    • Submódulos
    • Abrindo Módulos
    • Extendendo Módulos e Assinaturas
  • Erros Comuns com Módulos
  • Projetando Módulos
    • Raramente exponha tipos concretos
    • Projete para quem está chamando
    • Crie interfaces uniformes
    • Interface antes da implementação
  • Functors
  • Módulos de primeira-classe
    • Construindo módulos de Primeira Classe
    • Acessando módulos de primeira classe
    • Você pode viver sem módulos de primeira classe

Intermezzo 4 - Testes

  • Testes Unitários
  • Testes Baseados em Propriedades

Parte 5 - Mais Tipos

  • Pattern Matching
  • Exception
  • Tratando erros sem exceções
  • Option
  • Result
  • Sequence

Intermezzo 5 - esy

  • esy

Parte 6 - CRUD

  • em breve

Apêndice 1 - OOP

  • em breve

Apêndice 2 - FFI com C

  • em breve

Made with 🐫💜

Contribuidores ✨

Nosso agradecimento a todas essas pessoas (emoji key):


Camilo Cunha de Azevedo

🖋 💻 🚧 🧑‍🏫

Eduardo Canellas de Oliveira

🖋

Vitor

🖋

Gabriel

🖋

Vinicius Leonardo

🖋

nogw

🖋 💻

Mateus Mendes

🎨

Caio Martins

👀

Arthur Monici

👀

Gabriel Schreiner

👀

Esse projeto segue a especificação do all-contributors. Contribuições de todos os tipos são bem-vindas!