Skip to content

Instantly share code, notes, and snippets.

Avatar
😭
Sad and Brazilian

Ana Luiza Portello Bastos anabastos

😭
Sad and Brazilian
View GitHub Profile
View lambda.md

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

View 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 {
View Tabuada.java
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 Jul 21, 2017
super reduced string
View reducedString.js
// 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), [])
View combinators.js
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))
View hashtable.js
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 Mar 25, 2019
My Resumé :)
View resume.md
@anabastos
anabastos / solidIsFp.md
Last active Jul 15, 2020
Solid is FP - Luiz Stangarlin
View solidIsFp.md

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 Mar 19, 2021
meus churchezinhos
View lambdazinhs.js
/*
ChUrChEsZiNhUs
baseado na palestra : https://www.youtube.com/watch?v=VpzhH9CXOy0
*/
const ID = x => x
const TRUE = x => y => x
TRUE("0")("1") // 0
View functor.js
// 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})
}