I hereby claim:
- I am triclops200 on github.
- I am triclops200 (https://keybase.io/triclops200) on keybase.
- I have a public key whose fingerprint is 4431 1C41 2E68 1420 F8BB 42C2 F1FD 4C42 277B 46E7
To claim this, I am signing this object:
def swap_max(digits): | |
i = len(digits) - 1 | |
while i > 0: | |
if digits[i] == 0: | |
i-= 1 | |
else: | |
break | |
max_i = i | |
min_i = i | |
pot_i = i |
(defmacro while (test &body body) | |
`(do () | |
((not ,test)) | |
,@body)) | |
(defmacro with-gensyms (syms &body body) | |
`(let ,(mapcar #'(lambda (x) `(,x (gensym))) syms) | |
,@body)) | |
(defmacro collect-list (end-condition next-value var) |
(defun nfib (a b c n) | |
(if (= n 0) | |
a | |
(nfib b c (/ (+ b c) a) (1- n)))) | |
(defmacro while (test &body body) | |
`(do () | |
((not ,test)) | |
,@body)) |
(defmacro defmem | |
[name parms & body] | |
(let [fname (gensym) memname (gensym)] | |
`(do (declare ~name) | |
(letfn [(~fname ~parms ~@body)] | |
(let [~memname (atom {})] | |
(defn ~name ~parms | |
(if (contains? @~memname ~parms) | |
(get @~memname ~parms) | |
(do (swap! ~memname assoc ~parms (~fname ~@parms)) |
I hereby claim:
To claim this, I am signing this object:
(defun iterator-from-combos (&rest lists) | |
"Takes a set of lists, and returns an iterator that iterates through every | |
possible combo of values where each value is from the list passed at its | |
index." | |
; If any of the passed lists are nil, no combos can be made. | |
(if (contains nil lists) | |
; There are no combos, return an empty iterator. | |
(lambda () (values nil t)) | |
; Otherwise, build the combos iterator. | |
(labels |
(defun iterator-from-combos (&rest lists) | |
"Takes a set of lists, and returns an iterator that iterates through every | |
possible combo of values where each value is from the list passed at its | |
index." | |
(if (contains nil lists) ;; If any of the passed lists are nil, no combos can be made. | |
(lambda () (values nil t)) ;; There are no combos, return an empty iterator. | |
(labels ;; Otherwise, build the combos iterator. | |
((shift (lists base) ;; Shifts the set of lists down by one. | |
;; Returns two values, the new lists, and whether we have hit the end | |
(if (not lists) ;; If no lists have been passed, we are done shifting. |
class Literal: | |
def __init__(self,value): | |
self.value = value | |
class State: | |
def __init__(self,oldstate=None): | |
if(oldstate != None): | |
self.oldstate = [oldstate] | |
else: | |
self.oldstate = [] |
(defn increment-counter [res word] | |
(update-in res [word] (fnil inc 0))) | |
(defn increment-link [dict word1 word2] | |
(update-in dict [word1] increment-counter word2)) | |
(defn split-text [text] | |
(filter #(not (re-matches #"\s+" %)) (clojure.string/split text #"[.!?>\-\"\*\)\(]"))) | |
(defn fix-sentences [sentences] |
1 3 4 5 7 8 2 3 4 9 | |
20 30 | |
45 | |
108 202 |