Skip to content

Instantly share code, notes, and snippets.

from collections import Counter
def main():
with open("books/frankenstein.txt", "r") as file:
contents = file.read()
print("--- Begin report of books/frankenstein.txt ---")
print(f"{count_words(contents)} word found in the document\n")
letters = count_letters(contents)
@gerep
gerep / selection_sort.go
Last active August 17, 2022 12:47
Selection sort algorithm
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
  • Goroutines. Uma das coisas que Go acabou sendo bem conhecido é a questão da facilidade em trabalhar com concorrência.

  • Channels Se quiser ir mais a fundo nesse ponto, fale sobre channels também, que é uma maneira incrível de fazer essas sub rotinas se comunicarem.

  • Servidor web Me lembro de alguns programadores da CloudWalk ficarem surpresos com isso. Você pode criar um servidor web simples e funcional para demonstrar que com Go é possível ter um servidor HTTP/TCP/UDP sem precisar de nada além da linguagem. E tudo somente com um binário.

É possível fazer tudo isso sem nenhuma dependência externa, uma das características que acho muito boa nessa linguagem (e provavelmente em muitas outras).

local function print_r ( t )
local print_r_cache={}
local function sub_print_r(t,indent)
if (print_r_cache[tostring(t)]) then
print(indent.."*"..tostring(t))
else
print_r_cache[tostring(t)]=true
if (type(t)=="table") then
for pos,val in pairs(t) do
if (type(val)=="table") then
function pow(n, m){
if (m === 1) {
return n
}
return n * pow(n, m - 1)
}
console.log(pow(2,2))
console.log(pow(2,3))
console.log(pow(3,3))
function zipmap(keys, values){
if(keys.length === 0 || values.length === 0) {
return {}
}
obj = {[keys[0]]: values[0]}
return { ...obj, ...zipmap(keys.slice(1), values.slice(1))}
}
function product(nums){
if(nums.length === 0) {
return 1
}
return nums[0] * product(nums.slice(1))
}
console.log(product([ 1,2,3 ]))
import time
import random
def merge_sort(nums):
if len(nums) < 2:
return nums
middle = len(nums) // 2
left = merge_sort(nums[: middle])
right = merge_sort(nums[middle :])
@gerep
gerep / bubble_sort.py
Created January 21, 2022 14:42
Bubble sort
def bubble_sort(nums):
n = len(nums)
swap = True # required to start the while loop
while swap:
swap = False # always defaults to False
for i in range(1, n):
if nums[i-1] > nums[i]:
nums[i-1], nums[i] = nums[i], nums[i-1]
swap = True
@gerep
gerep / binary_search.py
Last active January 21, 2022 14:42
Binary search
def binary_search(target, arr):
low = 0
high = len(arr) - 1 # it starts with index 0
while low <= high:
mid = (low + high) // 2 # it represents the index of the middle element
if arr[mid] < target:
low = mid + 1
else: