Skip to content

Instantly share code, notes, and snippets.

View evaporei's full-sized avatar
🔮
spell caster

Eva Pace evaporei

🔮
spell caster
View GitHub Profile
@evaporei
evaporei / category-theory-identity.ts
Created September 13, 2019 19:44
Category Theory - Identity
function identity<T>(t: T): T {
return t
}
// identity ∘ f == f
// f ∘ identity == f
//
// Ou seja, uma função `f` composta com a
// identidade sempre da o mesmo resultado,
// independente da ordem da aplicação
@evaporei
evaporei / category-theory-associativity.ts
Last active November 28, 2025 13:46
Category Theory - Associativity
class A {}
class B {}
class C {}
class D {}
function f (a: A): B {
...
@evaporei
evaporei / category-theory-objects-and-morphisms.ts
Created September 13, 2019 19:38
Teoria das Categorias - Objetos e Morfismos
class X {}
class Y {}
class Z {}
function f (x: X): Y {
...
}
@evaporei
evaporei / category-theory-article.md
Last active November 28, 2025 13:52
Artigo de teoria das categorias

O que é Teoria das Categorias?

Há algumas semanas atrás eu fiz um curso de Teoria das Categorias na UFABC, e apesar disso não me fazer especialista no assunto, decidi que criaria esse artigo para tentar passar o que eu aprendi. Principalmente por sentir que existe muito misticismo no assunto para quem não conhece.

Mas afinal, o que é Teoria das Categorias?

É um tema originado na matemática que tem como base objetos e morfismos.

@evaporei
evaporei / ugly-typescript-monoid.ts
Last active September 13, 2019 19:07
Ugly TypeScript Monoid
class MyNumber extends Number implements Monoid<MyNumber> {
public x: Number;
constructor(x: Number) {
super(x)
this.x = x;
}
toString(): string {
return this.x.toString()
}
@evaporei
evaporei / group-by-without-ramda.js
Created May 28, 2019 23:16
Group by without Ramda
const data = [
{
category: 'action',
value: 'jorgs'
},
{
category: 'comedy',
value: 'lucians'
},
{

Aulas de JS

Tópicos a serem abordados

  • Tipos de variáveis, escopo e closures (var, let, const, escopos function e {})
  • Tipos e coerção (Boolean, null, undefined, Number, String, Object, Symbol e tabela de coerção)
  • this, prototypes e classes
  • Assincronia (event loop, setTimeout, setInterval, setImmediate, process.nextTick, Promise, function*, coroutines e async await)
@evaporei
evaporei / byte_array_state_machine.rs
Created May 8, 2019 04:03
How to parse array of bytes using a state machine (in Rust!)
struct State {
step: Step,
data: Vec<u8>,
}
impl State {
pub fn new() -> Self {
Self { step: Step::Initial, data: vec![] }
}
@evaporei
evaporei / Example.hs
Last active May 8, 2019 02:26
Haskell help, pattern match list of variants
data Alphabet = A Int | B Float | C String
cool :: [Alphabet] -> Bool
cool [] = error "Should not call `cool` with empty list"
cool alphabetList = case alphabetList of
[A] -> coolInt alphabetList
[B] -> coolFloat alphabetList
[C] -> coolString alphabetList
_ -> error "Shouldn't call `cool` with list of different variants"

Arch linux setup

Instalando Rust

paru -S rustup
rustup default stable

Instalando paru