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 |