Skip to content

Instantly share code, notes, and snippets.

@evaporei
evaporei / listening-signals.js
Created June 25, 2018 02:10
graceful-shutdown/listening-signals.js
process.on('SIGTERM', () => console.log('term'))
process.on('SIGINT', () => console.log('int'))
process.on('SIGHUP', () => console.log('hup'))
setInterval(() => console.log('doing useless work!'), 10000)
@evaporei
evaporei / main.rs
Created February 15, 2018 00:23
Read binary file
use std::fs::File;
use std::io::Read;
fn main()
{
let mut file = File::open("file2").unwrap();
for byte in file.bytes() {
match byte {
Ok(v) => println!("{:b}", v),// or {:x} for hex
@evaporei
evaporei / main.rs
Created February 14, 2018 15:49
Cat wannabe in Rust
use std::fs::File;
use std::env;// to get command line arguments
use std::io::prelude::*;
fn main() {
let args: Vec<String> = env::args().collect();
if let Some(file_name) = args.get(1) {
match File::open(file_name) {
Ok(mut file) => {
@evaporei
evaporei / index.html
Created February 9, 2018 18:28
Capítulo 7 - Guilda funcional - Flickr de gatos
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.11/require.min.js"></script>
<script>
requirejs.config({
paths: {
ramda: 'https://cdnjs.cloudflare.com/ajax/libs/ramda/0.13.0/ramda.min',
jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min'
}
@evaporei
evaporei / main.rs
Created February 9, 2018 15:49
Threads
use std::vec::Vec;
use std::thread;
fn main() {
let array = &[1..1000];
let mut handlers = Vec::new();
for i in 0..3 {
let slice = &array[(i * 250)..((i + 1) * 250)];
@evaporei
evaporei / main.rs
Created February 8, 2018 15:42
Rust request to pagar.me API
use std::io::prelude::*;
use std::net::TcpStream;
fn main() {
let mut stream = TcpStream::connect("api.pagar.me:80").unwrap();
let mut x = [0; 128];
let req = String::from("GET /1/status\n\n");
let req_bytes = req.into_bytes();
let w = stream.write(&req_bytes);

Capítulo 3: Currying

O conceito é simples: você pode chamar uma função com menos argumentos do que espera, então ela retorna uma nova função que recebe os argumentos que faltam.

Você pode escolher se vai passar todos os argumentos de uma vez, ou um por vez.

var add = function(x) {
  return function(y) {
    return x + y
@evaporei
evaporei / desafios_pagarme_ramda.js
Last active September 28, 2017 18:25
Desafios Pagar.me Ramda
// link dos desafios:
// https://github.com/pagarme/lambda/blob/master/ramda.md#desafios
const {
add,
pipe,
prop,
find,
propEq,
filter,
propSatisfies,
@evaporei
evaporei / ramda_exercise4.js
Last active September 26, 2017 02:44
Ramda functional exercise 4 - Get users in their thirties
const R = require('ramda')
const json = {
users: [
{id: 3, name: "Thad", age: 36},
{id: 5, name: "Lucian", age: 23},
{id: 2, name: "Justine", age: 29},
{id: 4, name: "Katie", age: 26},
{id: 0, name: "Jerold", age: 52},
{id: 1, name: "Nona", age: 33}
@evaporei
evaporei / ramda_exercise3.js
Created September 26, 2017 02:35
Ramda functional exercise 3 - Get the names of the 3 youngest users
const R = require('ramda')
const json = {
users: [
{id: 3, name: "Thad", age: 36},
{id: 5, name: "Lucian", age: 23},
{id: 2, name: "Justine", age: 29},
{id: 4, name: "Katie", age: 26},
{id: 0, name: "Jerold", age: 52},
{id: 1, name: "Nona", age: 33}