K

@kenbitanga

Python: Factorial & Fibonacci - Tail Recursive

Python
2 years ago
# factorial def fac(n): return factorial(n, 1) def factorial(n, acc): if n < 0: return None if n == 0: return acc return factorial(n-1, acc*n) # fibonacci

Go: Factors & Primes

Go
2 years ago
package main import ( "fmt" "reflect" ) func factors(n int) []int { result := []int{} for i := 1; i <= n; i++ {

Go: Sum Array/Slice - Iterative vs Recursive

Go
2 years ago
package main import "fmt" func sum_iter(nums []int) int { result := 0 for _, v := range nums { result += v } return result

Elixir: Recursive Module

Python
2 years ago
defmodule Recursive do # sum def sum(list) do sum(list, 0) end def sum([], acc) do acc end

Python: Quicksort with Optional Reverse Parameter

Python
2 years ago
def qsort(li, reverse=False): if len(li) == 0: return li p, *xs = li left = [x for x in xs if x <= p] right = [x for x in xs if x > p] if reverse: return [*qsort(right, reverse), p, *qsort(left, reverse)] return [*qsort(left, r

Python: Quicksort with Optional Reverse Parameter + Partition Function

Python
2 years ago
def partition(f, li): if len(li) == 0: return ([], []) x, *xs = li ys, zs = partition(f, xs) if f(x): return ([x, *ys], zs) return (ys, [x, *zs]) def qsort(li, reverse=False): if len(li) == 0: return li p, *xs = li

Python: Factors, Prime, NPrimes - Purely Functional

Python
2 years ago
def factors(n): return [x for x in range(1, n+1) if n % x == 0] def prime(n): return factors(n) == [1, n] def nprimes(n, i=1, c=0, r=[]): if c >= n: return r if prime(i): return nprimes(n, i+1, c+1, [*r, i]) return nprimes(n, i+1, c, [

Python: Factors & Primes

Python
2 years ago
def factors(n): return [x for x in range(1, n+1) if n % x == 0] def prime(n): return factors(n) == [1, n] n = 30 primes = [x for x in range(1, n+1) if prime(x)] print(primes)

Python: Quicksort & Partition

Python
2 years ago
def partition(f, li): if len(li) == 0: return ([], []) x, *xs = li ys, zs = partition(f, xs) if f(x): return ([x, *ys], zs) return (ys, [x, *zs]) def qsort(li, reverse=False): if len(li) == 0: return li p, *xs = li

Ruby: Quicksort & Partition

Ruby
2 years ago
def partition(f, arr) return [[], []] if arr.empty? x, *xs = arr ys, zs = partition(f, xs) return [[x, *ys], zs] if f[x] [ys, [x, *zs]] end def qsort(arr) return arr if arr.empty?

FSharp: Quicksort - Partition List

Python
2 years ago
let rec partition f = function | [] -> [], [] | x::xs -> let ys, zs = partition f xs in if f x then x::ys, zs else ys, x::zs let rec qsort = function | [] -> []

Haskell: Partition List - Let..In vs Where

Python
2 years ago
partition1 _ [] = ([], []) partition1 f (x:xs) = let (ys, zs) = partition1 f xs in if f x then (x:ys, zs) else (ys, x:zs) partition2 _ [] = ([], []) partition2 f (x:xs) | f x = (x:ys, zs)

Python: Reverse List - Recursive - Purely Functional

Python
2 years ago
def reverse_list(li): if len(li) == 0: return li last, init = li[-1], li[:-1] return [last, *reverse_list(init)] li = [1,2,3] print(li) print(reverse_list(li))

FSharp: Quicksort - Partition

Python
2 years ago
let rec partition f = function | [] -> [], [] | x::xs -> let ys, zs = partition f xs if f x then x::ys, zs else ys, x::zs let rec qsort = function | [] -> []

FSharp: Quicksort

Python
2 years ago
let rec qsort = function | [] -> [] | x :: xs -> let smaller = List.filter (fun a -> a <= x) xs let larger = [for a in xs do if a > x then yield a] qsort smaller @ [x] @ qsort larger let unsorted = [5; 2; 1; 4; 3] let sorte

Haskell: Quicksort in Multiple Ways

Python
2 years ago
qsort li | null li = [] | otherwise = qsort lt ++ [p] ++ qsort gt where (p:xs) = li lt = [x | x <- xs, x <= p] gt = [x | x <- xs, x > p] qsort0 [] = [] qsort0 (p:xs) = qsort0 lt ++ [p] ++ qsort0 gt

Haskell: Quicksort - Partition - Where - Let..In

Python
2 years ago
qsort [] = [] qsort (p:xs) = qsort lt ++ [p] ++ qsort gt where (lt, gt) = partition ((>) p) xs partition1 _ [] = ([], []) partition1 f (x:xs) = let (ys, zs) = partition1 f xs in if f x then (x:ys, zs) else (ys, x:zs)

Python: Summation / Sigma Formula - No Loop - No Recursion

Python
2 years ago
def sigma(z): return z * (z+1) // 2 def sigma_range(a, z): return (z * (z+1) // 2) - ((a-1) * a // 2) print(sigma(5)) print(sigma_range(1, 5))

FSharp: Partition List - Match

Python
2 years ago
let rec partition f = function | [] -> ([], []) | x::xs -> let (ys, zs) = partition f xs match f x with | true -> (x::ys, zs) | false -> (ys, x::zs) [1..8] |> partition (fun x -> x%2 = 1) |> printfn "%A"

FSharp: Partition List - If-Else

Python
2 years ago
let rec partition f = function | [] -> ([], []) | x::xs -> let (ys, zs) = partition f xs if f x then (x::ys, zs) else (ys, x::zs) [1..8] |> partition (fun x -> x%2 = 1) |> printfn "%A"