Skip to content

Instantly share code, notes, and snippets.

View anabastos's full-sized avatar
😭
Sad and Brazilian

Ana Luiza Portello Bastos anabastos

😭
Sad and Brazilian
View GitHub Profile
@anabastos
anabastos / lambda.md
Last active April 17, 2018 20:31
Lambda

Calculo Lambda

Calculo lambda é um sistema formal pra representar computações baseado na definicao e aplicacao de funções e nele:

  • Todas as funcoes sao anonimas
  • Todas as funções objetos de ordem elevada(ou high order functions), ou seja, funções podem ser passadas como argumentos de outras funções e também serem retorno de funções.
  • Permite a combinação de operadores e funções básiacas na geração de operadores mais complexos;
  • Pode ser tipada ou não

Alonzo Church inventou o calculo lambda nos anos 30 com o intuito de formalizar a matemática através da noção de funções ao invés da teoria de conjuntos sendo uma representação equivalente á maquina de Turing porém representando computacoes através funções ao inves de maquinas e teve um impacto forte na computação por ser a forma teoria de especificar e implementar linguagens de programação baseadas em funções, aka. linguagens funcionais. Em 1937 Alan Turing provou a equivalencia entre uma maquina de turing e o calculo lambda em termos de computabilidad

@anabastos
anabastos / umbrella.js
Last active May 28, 2021 18:53
Umbrella.js
//Solution of https://gist.github.com/lubien/1f09a53a4b5607377166c58a7eb49ae0
const solve = (people, umbrellas) => {
const biggerUmbrella = Math.max(...umbrellas)
const remain = people % biggerUmbrella
const peopleThatFit = Math.floor(people / biggerUmbrella)
if (remain >= 1 && umbrellas.length === 1) {
return -1
} else {
class Tabuada {
private int row;
public Tabuada(int numero) {
this.numero = numero;
System.out.println("Tabuada do : " + this.numero);
}
void report(int multiplicador) {
public static int multiplicacao = numero * multiplicador
@anabastos
anabastos / reducedString.js
Created July 21, 2017 14:56
super reduced string
// versao one line
const str = 'aaabccddd'
str.split('').reduce((acc, res) => res == acc.slice(-1)[0] ? acc.slice(0, -1) : acc.concat(res), []).join('') || 'Empty String' //'abd'
//versao composed
const lastItem = arr => arr.slice(-1)[0]
const removeLast = arr => arr.slice(0, -1)
const reduceArray = arr => {
return arr.reduce((acc, res) => res == lastItem(acc) ? removeLast(acc) : acc.concat(res), [])
@anabastos
anabastos / combinators.js
Last active September 3, 2017 17:19
eita porra
const B = a => b => c => a(b(c))
const B1 = a => b => c => d => a(b(c)(d))
const B2 = a => b => c => d => e => a(b(c)(d)(e))
const B3 = a => b => c => d => a(b(c(d)))
const C = a => b => c => a(c)(b)
const C_ = a => b => c => d => a(b)(d)(c)
const C__ = a => b => c => d => e => a(b)(c)(e)(d)
const D = a => b => c => d => a(b)(c(d))
const D1 = a => b => c => d => e => a(b)(c)(d(e))
const D2 = a => b => c => d => e => a(b(c))(d(e))
@anabastos
anabastos / hashtable.js
Created September 3, 2017 17:40
hashtable
const N = 10
// const N = 127
const hashTable = () => {
let table = []
const createHashIndex = (key, colision = 0) => {
let hash = 0;
for (var i = 0; i < key.length; i++) {
hash = (hash << 5) - hash + key.charCodeAt(i);
@anabastos
anabastos / resume.md
Last active March 25, 2019 02:11
My Resumé :)
@anabastos
anabastos / solidIsFp.md
Last active October 16, 2022 22:09
Solid is FP - Luiz Stangarlin

SOLID is FP!

So, I decided to write a little thing, only to practice writing, it's about SOLID being compared between class-based-OO and FP, and there will be grammar errors and there will be a lot of formatting errors, 'bear' with me as I type this as fast as I can. Also correct if I'm wrong. Warning, wall of text in English.

Single responsibility principle

" a class should have only a single responsibility "

A pure function is something with a single responsibility, turning its input into an output. What could be simpler?.

@anabastos
anabastos / lambdazinhs.js
Last active April 1, 2024 23:48
meus churchezinhos
/*
ChUrChEsZiNhUs
baseado na palestra : https://www.youtube.com/watch?v=VpzhH9CXOy0
*/
const ID = x => x
const TRUE = x => y => x
TRUE("0")("1") // 0
@anabastos
anabastos / functor.js
Last active April 1, 2018 19:09
funfunfunc
// Container de coisas
// Meio de aplicar funcoes em um valor
// Deve retornar valores no mesmo contexto
const functor = {
map: function(f) { return functor.of(f(this.value))},
of: x => Object.assign({}, functor, {value: x})
}