Skip to content

Instantly share code, notes, and snippets.

Vincent Foley gnuvince

Block or report user

Report or block gnuvince

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View gist:58924
(def opening-brackets "({[<")
(def closing-brackets ")}]>")
(def brackets (reduce #(apply assoc %1 %2) {}
(map vector opening-brackets closing-brackets)))
(defn- check-aux [[x & xs] stack]
(if x
(cond (some #{x} opening-brackets) (recur xs (conj stack (brackets x)))
(some #{x} closing-brackets) (if (= x (peek stack))
(recur xs (pop stack))
View gist:58942
(def brackets (zipmap "([{<" ")]}>"))
(def opening-brackets (set (keys brackets)))
(def closing-brackets (set (vals brackets)))
(defn- check-aux [[x & xs] stack]
(if x
(cond (opening-brackets x) (recur xs (conj stack (brackets x)))
(closing-brackets x) (if (= x (peek stack))
(recur xs (pop stack))
false)
View gist:59176
>>> s1 = set(["a", "b", "c"])
>>> s2 = set(["a"])
>>> s1 - s2
set(['c', 'b'])
View gist:63007
{21:33}[vince@vincent: prog/clojure]% clj slowdemo.clj
get-byte
"Elapsed time: 202.54176 msecs"
get-short
"Elapsed time: 110.68448 msecs"
{21:33}[vince@vincent: prog/clojure]% clj slowdemo.clj
Reflection warning, line: 9 - call to and can't be resolved.
Reflection warning, line: 14 - call to and can't be resolved.
get-byte
View gist:64518
user> (def rep (unpack (File. "/home/vince/prog/python/pyreplib/misc/sea_savior.rep")))
#'user/rep
user> (unit-distribution (get-in rep [:players 0 :actions]))
{"Firebat" 34, "Dropship" 3, "Science Vessel" 43, "Medic" 48, "Marine" 599, "SCV" 82}
user> (unit-distribution (get-in rep [:players 1 :actions]))
{"Ultralisk" 95, "Defiler" 32, "Scourge" 25, "Mutalisk" 8, "Zergling" 179, "Overlord" 35, "Drone" 158}
user> (action-distribution (get-in rep [:players 1 :actions]))
View gist:505810
/*
* Compare two cards and return:
* < 0 if a is smaller than b
* 0 if a is equal to b
* > 0 if a is greater than b
*/
int CardCompare(const Card* a, const Card* b) {
if (a == NULL)
return 1;
if (b == NULL)
View tree.ml
type 'a tree =
| Empty
| Node of ('a * 'a tree * 'a tree)
let rec walk_tree f tree =
match tree with
| Empty -> ()
| Node (x, left, right) ->
f x;
walk_tree f left;
View tree.ml
type 'a tree =
| Empty
| Node of ('a * 'a tree * 'a tree)
let rec walk_tree f tree =
match tree with
| Empty -> ()
| Node (x, left, right) ->
f x;
walk_tree f left;
View gist:1869094
;; init.el
;; Vincent Foley - vfoley@gmail.com
(require 'cl)
(defmacro when-package-installed (package-name &rest body)
`(if (package-installed-p ,package-name)
(progn ,@body)
(warn "package %s is not installed" ,package-name)))
View gist:2165868
.text
_main:
cmp %ebx, %ecx
mov $1, %eax
je equal
mov $0, %eax
equal:
ret
You can’t perform that action at this time.