Skip to content

Instantly share code, notes, and snippets.

View rhz's full-sized avatar

Ricardo Honorato-Zimmer rhz

View GitHub Profile
(defmacro multi-pred [& preds]
`(fn [& args]
(and ~@(for [pred preds]
`(apply ~pred args)))))
(defrecord Agent [id name states bindings])
(defn a1 [bs ba]
(Agent. 1 :a1 {"x" ""} {"x" [bs (delay (ba "x" a1))]}))
(defn a2 [bs ba]
(Agent. 2 :a2 {"z" ""} {"z" [bs (delay (ba "z" a2))]}))
;; user> (a1 "z" a2) ; why stack overflow?
(add-to-list 'load-path (expand-file-name "~/emacs/lisp/auto-complete-1.2/"))
(require 'auto-complete-config)
(add-to-list 'ac-dictionary-directories "~/emacs/lisp/auto-complete-1.2/dict/")
(ac-config-default)
(defn get-complexes
"Returns a seq with the ids of the complexes in expr (which is a
map from id (Integer) to Kappa agent)."
[expr]
(if (:complexes (meta expr)) (:complexes (meta expr))
(let [get-complex (partial complex expr)]
(loop [remaining expr
last-complex #{}
groups (transient [])]
(let [remaining (remove (comp last-complex key) remaining)]
No message.
[Thrown class java.lang.IndexOutOfBoundsException]
Restarts:
0: [QUIT] Quit to the SLIME top level
1: [ABORT] ABORT to SLIME level 0
Backtrace:
0: clojure.lang.PersistentVector.arrayFor(PersistentVector.java:106)
1: clojure.lang.PersistentVector.nth(PersistentVector.java:110)
@rhz
rhz / gist:671969
Created November 11, 2010 03:52
pak -Ss QUERY
diff --git a/main.lisp b/main.lisp
index 0dfaf15..ec5730e 100644
--- a/main.lisp
+++ b/main.lisp
@@ -270,6 +270,17 @@ Returns T upon successful installation, NIL otherwise."
(get-pkgbuild pkg-name)
(quit)))))))))
+(defun search-packages (query)
+ (maybe-refresh-cache)
diff --git a/src/main/clojure/clojure/data/finger_tree.clj b/src/main/clojure/clojure/data/finger_tree.clj
index bc00343..557aaaf 100644
--- a/src/main/clojure/clojure/data/finger_tree.clj
+++ b/src/main/clojure/clojure/data/finger_tree.clj
@@ -537,13 +537,17 @@
(count [_] (:len (measured tree)))
IPersistentSet
(disjoin [this k]
- (let [[l x r] (split-tree tree #(>= 0 (cmpr k (:right %))))]
- (if (= x k)
(defn prob-n [pred tol in n] ;; in is a csv's filename
(let [as (for [[_ _ p m] (map #(.split % ";") (rest (.split (slurp in) "\n"))) :when p]
(if (empty? m) [p] [p m])) ;; take the third and fourth (if possible) column of each row
conteo (for [as (c/combinations as n)]
(if (apply pred tol as) 1 0))]
(/ (reduce + conteo) (count conteo))))
(defn ningun-apellido-en-comun [tol & as]
(let [distinct-as (distinct (apply concat as))
conteo (for [a distinct-as]
(require '[clojure.string :as s]
'[incanter.stats :as stats]
'[clojure.contrib.generic.math-functions :as m]
'[clojure.contrib.combinatorics :as c])
;;;; Conversion
(defn get-rows [s]
(let [[sep & ss] (.split s "\n")]
(take-nth 2 (partition-by #{sep} ss))))
(defprotocol AKappaExpression
"Kappa expression"
(agents [e] "get all agents in this expression")
(complexes [e] "get all complexes in this expression")
(subexpr [e ids] "get a subexpression for the given agent ids")
(merge [e1 e2] "merge two expressions")
(count-automorphisms [e] "count the number of automorphisms")
(expression? [e] "predicate for AKappaExpression")
(match [e1 e2] "returns a map from agent ids in e1 to their matching agent ids in e2")
;; should this methods be part of AKappaAgent?