Skip to content

Instantly share code, notes, and snippets.

View lucassmagal's full-sized avatar

Lucas S. Magalhães lucassmagal

View GitHub Profile
qsort :: (Int -> Int -> Bool) -> [Int] -> [Int]
qsort _ [] = []
qsort fn (pivot:elems) =
let p = filter (fn pivot) elems
q = filter (not . fn pivot) elems
in qsort fn p ++ [pivot] ++ qsort fn q
-- qsort (>) [5,2,6,1,87,0,9]
-- [0,1,2,5,6,9,87]
-------------------------------------------------------------------------------
>Log Session: Saturday, March 9, 2013 12:20:25 PM BRT
>System Info:
Product Version = Gephi 0.8.2 201210100934
Operating System = Linux version 3.5.0-25-generic running on amd64
Java; VM; Vendor = 1.7.0_15; OpenJDK 64-Bit Server VM 23.7-b01; Oracle Corporation
Runtime = OpenJDK Runtime Environment 1.7.0_15-b20
Java Home = /usr/lib/jvm/java-7-openjdk-amd64/jre
System Locale; Encoding = pt_BR (gephi); UTF-8
Home Directory = /home/lsmagalhaes
Int -> Int -> Int
add a b = a + b
Para explicar, vamos trocar os 3 Int por X, Y, e Z, onde a:X, b:Y e c:a+b
X -> Y -> Z
quer dizer que a função recebe dois parâmetros, X e Y, e retorna Z.
Como em Haskell todas as funções são curryied, a expressão acima também quer
dizer que "add" recebe um parâmetro X e retorna *outra função*, que recebe Y
import System.IO
import System.IO.Unsafe
import System.Environment
import System.Directory
writeOnFile task = appendFile todoTxt (task ++ "\n")
todoTxt = home ++ "/todo.txt" where
home = unsafePerformIO getHomeDirectory
foo.bar
module Todotxt where
import Data.List
import Control.Monad
import System.IO
import System.IO.Unsafe
import System.Environment
import System.Directory
a = do
x <- [3..4]
[1..2]
return (x, 42)
a = [3..4] >>= \x ->
[1..2] >>= \_ ->
return (x, 42)
@lucassmagal
lucassmagal / README.md
Created May 13, 2013 14:00
express.js hello world

Hello World!

Amigos,
Estamos com uma nova oportunidade no nosso time para quem quer trabalhar com Python (Django), tecnologias web e focado no desenvolvimento em uma startup em crescimento.
A ÓRAMA é uma empresa nova no mercado (cerca de 2 anos), mas seus fundadores têm mais de 20 anos de experiência no segmento. Seus sócios são os mesmos que fundaram a Ágora, que foi a maior corretora do Brasil por quase 10 anos e uma das maiores corretoras online do mundo.
O mercado financeiro, apesar do uso intenso de tecnologia, ainda apresenta grandes oportunidades de inovação. E a ÓRAMA foi criada exatamente por isso, inaugurando o segmento de Lojas online de Fundos de Investimentos no Brasil. Queremos mudar a forma como o investidor brasileiro aplica o seu dinheiro!
A ÓRAMA é 100% web, 100% eletrônica e 100% integrada aos seus parceiros, portanto a tecnologia tem papel crucial na operação e no sucesso da empresa.