Skip to content

Instantly share code, notes, and snippets.

@chase-lambert
chase-lambert / area.clj
Last active March 3, 2023 03:26
random nerd snipe messing around
(ns area
(:require
[clojure.math :as math]
[criterium.core :as crit]))
(defmulti area :shape)
(defmethod area :square [{:keys [side]}]
(* side side))
@chase-lambert
chase-lambert / repeated_groups.clj
Last active May 15, 2024 18:14
rendezvous with cassidoo challenge: 23.02.26
(ns repeated-groups
(:require [clojure.test :refer [deftest is]))
(defn repeated-groups [nums]
(->> nums
(partition-by identity)
(filter #(> (count %) 1))
(into [])))
;; Using transducers instead which gives
@chase-lambert
chase-lambert / num_balanced.clj
Last active May 17, 2023 00:41
rendezvous with cassidoo challenge: 23.02.20
(ns num-balanced
(:require [clojure.test :refer [deftest is]))
(defn paren-as-num [c]
(case c
\( 1
\) -1
0))
(defn num-balanced [s-of-parens]
@chase-lambert
chase-lambert / generate_arrays.clj
Last active May 17, 2023 00:41
rendezvous with cassidoo challenge: 23.01.29
(ns generate-arrays
(:require [clojure.test :refer [deftest is]))
(defn generate-arrays [n]
(mapv #(vec (range 1 (inc %))) (range 1 (inc n))))
(deftest generate-arrays-test
(is (= (generate-arrays 4) [[1] [1 2] [1 2 3] [1 2 3 4]]))
(is (= (generate-arrays 1) [[1]])))
@chase-lambert
chase-lambert / generate_arrays.rs
Last active May 17, 2023 00:42
rendezvous with cassidoo challenge: 23.01.29
pub fn generate_arrays(n: i32) -> Vec<Vec<i32>> {
(1..=n).map(|x| (1..=x).collect()).collect()
}
#[test]
fn generate_arrays_test() {
assert_eq!(
generate_arrays(4),
vec![vec![1], vec![1, 2], vec![1, 2, 3], vec![1, 2, 3, 4]]
);
@chase-lambert
chase-lambert / print_ascii.clj
Last active May 17, 2023 00:42
rendezvous with cassidoo challenge: 22.10.30
(ns print-ascii)
(defn print-ascii []
(doseq [i (range 0x20 0x7F)]
(print (char i))))
;; If you want to print in sections exactly as shown in the prompt
(defn print-ascii-sections []
(doseq [section (partition-all 16 (range 0x20 0x7F))]
(println (apply str (map char section)))))
@chase-lambert
chase-lambert / pass_doors.clj
Last active May 17, 2023 00:42
rendezvous with cassidoo challenge: 22.10.17
(ns pass-doors
(:require [clojure.test :refer [deftest is]))
(defn pass-doors [n number-of-passes]
(let [initial (repeat n 1)
passes (range number-of-passes)
toggle-door (fn [d] (if (zero? d) 1 0))
create-sections (fn [doors pass]
(map vec (partition-all (inc pass) doors)))
toggle-section (fn [section pass]
@chase-lambert
chase-lambert / truncate.clj
Last active May 17, 2023 00:43
rendezvous with cassidoo challenge: 22.10.10
(ns truncate
(:require [clojure.test :refer [deftest is]))
(defn truncate [s n]
(let [tokens (re-seq #"\W+|_|[a-zA-Z]+" s)
word? #(re-find #"\w+" %)
truncate-w (fn [token]
(if (and (word? token)
(> (count token) n))
(subs token 0 n)
@chase-lambert
chase-lambert / fib_like.clj
Last active May 17, 2023 00:43
rendezvous with cassidoo challenge: 22.10.02
(ns fib-like
(:require [clojure.test :refer [deftest is]]))
(defn fibber [a b]
(lazy-seq
(cons a (fibber b (+ a b)))))
(defn fib-like [a b n]
(take n
(fibber a b)))
@chase-lambert
chase-lambert / calculate_gpa.clj
Last active May 17, 2023 00:43
rendezvous with cassidoo: 22.09.18
(ns calculate-gpa
(:require [clojure.test :refer [deftest is]]))
(def grade->points
{:A 4
:A- 3.7
:B+ 3.3
:B 3
:B- 2.7
:C+ 2.3