start new:
tmux
start new with session name:
tmux new -s myname
(ns reverse) | |
;; Challenge: https://x.com/zanfranceschi/status/1726613006921150913?s=20 | |
(defmulti f (fn [n _] (compare n 0))) | |
(defmethod f 0 [_ coll] coll) | |
(defmethod f 1 [n coll] | |
(let [[idx m] (apply max-key #(-> % second :units) (map-indexed vector coll))] |
(defn gaps | |
[s] | |
(let [first-letter (first s) | |
last-letter (last s) | |
lowers (map char (range (int \a) (inc (int \z)))) | |
uppers (map char (range (int \A) (inc (int \Z)))) | |
alphabet (if (Character/isLowerCase ^Character (first s)) lowers uppers) | |
letters-range (->> alphabet (drop-while #(not= first-letter %)) (take-while #(not= last-letter %)))] | |
(clojure.string/join "" (sort (clojure.set/difference (set letters-range) (set s)))))) |
(->> (.ints (java.util.Random.) 10000 3 6) | |
.iterator | |
iterator-seq | |
(map (fn [n] (clojure.string/join (repeatedly n #(.charAt "abcdefghijklmnopqrstuvwxyz0123456789" (.nextInt (java.util.Random.) 36)))))) | |
(filter (fn [s] (= s (clojure.string/reverse s)))) | |
count) |
// É realmente possível executar esse código com Java 11+: | |
// $ java Main.java | |
/* | |
O ponto-chave dessa solução é abstrair o repository, responsável pela persistência, | |
em uma interface agnóstica da real implementação da persistência (seja um banco, seja Redis etc). | |
A classe UserService fica livre para escolher implementações diferentes de acordo com suas necessidades. | |
Tudo que ela precisa conhecer é a API genérica de UserRepository. | |
A implementação concreta pode ser injetada em UserService de algumas formas como via construtor (como no exemplo) |
(ns my.example.kafka.consumer | |
(:require [com.stuartsierra.component :as component] | |
[taoensso.timbre :as log] | |
[clojure.core.async :refer [thread]]) | |
(:import [org.apache.kafka.clients.consumer KafkaConsumer ConsumerRecord] | |
[java.time Duration] | |
[java.util Properties List] | |
[org.apache.kafka.common.errors WakeupException])) | |
(declare loop-consumer!) |
def question_marks(s): | |
numbers, pairs = list("0123456789"), [] | |
for i1, p1 in enumerate(s): | |
for i2, p2 in enumerate(s[i1+1:], i1+1): | |
if p1 not in numbers: continue | |
elif p2 in numbers and (int(p1) + int(p2)) == 10: pairs.append((i1, i2)); break | |
else: continue | |
def has_three_marks(pair): | |
(p1, p2), counter = pair, 0 | |
for letter in s[p1:p2+1]: |