Skip to content

Instantly share code, notes, and snippets.

View lazamar's full-sized avatar

Marcelo Lazaroni lazamar

View GitHub Profile
@lazamar
lazamar / Main.hs
Last active August 30, 2023 10:18
Unnecessarily knot tying solution to nested-map-reduce-traversal challenge.
{- Unnecessarily knot tying solution to https://github.com/josevalim/nested-map-reduce-traversal
You can run it with:
$ ghc Main.hs && ./Main
Which outputs:
Numbered 0 ("One",[Numbered 0 "A",Numbered 1 "B"])
Numbered 1 ("Two",[Numbered 2 "C",Numbered 3 "D",Numbered 4 "E"])
Numbered 2 ("Three",[Numbered 0 "F",Numbered 1 "G"])
Numbered 3 ("Four",[])
@lazamar
lazamar / index.js
Last active March 15, 2024 15:49
Bubble sort and merge sort
// run with `node index.js`
function bubbleSort(list) {
for (let limit = 1; limit < list.length; limit++) {
for (let i = 0; i < list.length - limit; i++) {
let left = list[i];
let right = list[i + 1];
if (left > right) {
list[i] = right;
list[i+1] = left;
@lazamar
lazamar / main.prof
Created July 3, 2024 11:15
Profile of compressor
Wed Jul 3 12:04 2024 Time and Allocation Profiling Report (Final)
main +RTS -p -RTS test ghcup
total time = 56.65 secs (56648 ticks @ 1000 us, 1 processor)
total alloc = 338,254,238,432 bytes (excludes profiling overheads)
COST CENTRE MODULE SRC %time %alloc
serialize.write Main Main.hs:(99,3)-(107,53) 27.6 27.7
@lazamar
lazamar / Database.MySQL.hs
Last active November 27, 2024 12:31
Thread-safe mysql-simple usage
module Database.MySQL
( Connected
, withConnection
, connected
) where
import Control.Concurrent (MVar, newMVar, newEmptyMVar, putMVar, takeMVar, tryPutMVar, modifyMVar_)
import Control.Concurrent.Async (withAsyncBound, withAsync, wait, waitEither)
import Control.Exception (SomeException, SomeAsyncException, fromException, bracket, throwIO, tryJust, tryJust)
import Control.Monad (unless, forever)