This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns kleene) | |
;; | |
;; Inspired by "Regexes, Kleene Algebras and Real Ultimate Power" | |
;; http://plastic-idolatry.com/erik/oslo2014.pdf | |
;; | |
;; What do we want to do?... | |
;; | |
;; (def p1 (times (Var. "w") (Var. "o") (Var. "w")) | |
;; (matches? p1 "wow") ;; true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo bash | |
cd /usr/local/lib | |
wget http://launchpad.net/gearmand/trunk/0.18/+download/gearmand-0.18.tar.gz | |
tar -xvzf gearmand-0.18.tar.gz | |
cd gearmand-0.18/ | |
apt-get install libboost-program-options-dev uuid-dev libevent-dev build-essential g++ | |
./configure && sudo make && sudo make install | |
ldconfig |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; Channels-driven concurrency with Clojure | |
;; Clojure variant for code examples from this gist: | |
;; https://gist.github.com/3124594 | |
;; Primarily taken from Rob Pike's talk on Google I/O 2012: | |
;; http://www.youtube.com/watch?v=f6kdp27TYZs&feature=youtu.be | |
;; | |
;; Concurrency is the key to designing high performance network services. | |
;; Clojure provides several concurrency primitives, like futures/promises, atom, agent etc. | |
;; There is no implementation for "Go channels" in core, but we can use | |
;; 3rd-party library Lamina to do the same things. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Author: Alexey Kachayev | |
## Email: kachayev@gmail.com | |
## Talk: "Functional programming with Python", UA PyCon 2012 | |
## URL: http://ua.pycon.org/static/talks/kachayev/index.html#/ | |
############################################### | |
## Imitate dictionary functionality | |
############################################### | |
def dict_pair((key, value)): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"fmt" | |
"time" | |
"math/rand" | |
) | |
const ( | |
CUTTING_TIME = 20 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import scala.actors.Actor | |
import scala.actors.Actor._ | |
case object Ping | |
case object Pong | |
case object Stop | |
class Ping(count: Int, pong: Actor) extends Actor { | |
def act() { | |
var pingsLeft = count - 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%% | |
%% Solve sleeping barber problem in most general case | |
%% Task description on Wikipedia: | |
%% http://en.wikipedia.org/wiki/Sleeping_barber_problem | |
%% | |
%% Additions to classic variant: | |
%% * many barbers | |
%% * many clients generators with random timeouts between clients | |
%% * calculation for total served clients | |
%% * random time for each client to make barber's job |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%% | |
%% Solve sleeping barber problem in most general case | |
%% Task description on Wikipedia: | |
%% http://en.wikipedia.org/wiki/Sleeping_barber_problem | |
%% | |
%% Additions to classic variant: | |
%% * many barbers | |
%% * many clients generators with random timeouts between clients | |
%% * calculation for total served clients | |
%% * random time for each client to make barber's job |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
%% | |
%% Solve sleeping barber problem in most general case | |
%% Task description on Wikipedia: | |
%% http://en.wikipedia.org/wiki/Sleeping_barber_problem | |
%% | |
%% Additions to classic variant: | |
%% * many barbers | |
%% * many clients generators with random timeouts between clients | |
%% * calculation for total served clients | |
%% * random time for each client to make barber's job |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Data.List | |
uniqSubstr :: String -> Int | |
uniqSubstr = sum . (map pair) . pairwise . sort . tails | |
where | |
pairwise l@(_:ht) = zip l ht | |
prefix pre post = length $ takeWhile (uncurry (==)) $ zip pre post | |
pair (pre, post) = length $ drop (prefix pre post) post |
OlderNewer