Skip to content

Instantly share code, notes, and snippets.

@mnicky
mnicky / stopwords-en
Last active October 9, 2015 06:18
Extract words from all your tweets and count their occurences
able
about
above
abst
accordance
according
accordingly
across
act
actually
@mnicky
mnicky / github_lang_chart.sh
Created June 22, 2012 08:30
GitHub programming language popularity chart
# Display chart of programming languages recognized by GitHub, sorted by their popularity.
# Be patient, it takes about one minute to complete on a good internet connection.
for i in `curl -s "https://github.com/languages" | grep -io "/languages/[^\"]*" | sort | uniq`; do curl -s "https://github.com$i" | grep "<h1>.*</h1>" | sed 's/the most/#1/g' | sed 's/.*<h1>\(.*\) <em>.*#\([0-9]*\).*/\2 \1/g'; done | sort -n
@mnicky
mnicky / simple_infer.clj
Created June 16, 2012 22:02
Simple inference engine
;simple inference engine, using bruteforce propagation of modus ponens
;if the fact matches given clause (using supplied map of bindings),
;returns a map of established bindings, else returns false
(defn match
([clause fact] (match clause fact {}))
([clause fact bnds]
(let [[cls & clsR] clause, [fct & fctR] fact]
(cond (contains? #{:not=} cls) {:__special__ clause}
(= clause fact) bnds
@mnicky
mnicky / lisp.lisp
Created January 28, 2012 13:13
McCarthy's LISP from 1960 in Common Lisp:
; source: http://lib.store.yahoo.net/lib/paulgraham/jmc.lisp
; The Lisp defined in McCarthy's 1960 paper, translated into CL.
; Assumes only quote, atom, eq, cons, car, cdr, cond.
; Bug reports to [email protected].
(defun null. (x)
(eq x '()))
(defun and. (x y)
@mnicky
mnicky / self-calling-lambda.scm
Created August 23, 2011 12:10
How to make an anonymous function call itself
;we define a function 'starter' which calls its first parameter on itself and the second parameter
(define starter
(lambda (f arg)
((f f arg))))
;we call the 'starter' on anonymous (lambda) function (calling its first parameter on itself and the second parameter) and a number
(starter (lambda (g num)
(printf "~a\n" num)
(g g (+ num 1)))
0)