Skip to content

Instantly share code, notes, and snippets.

View tkhoa2711's full-sized avatar

Khoa Le tkhoa2711

View GitHub Profile
@tkhoa2711
tkhoa2711 / Singleton.py
Created October 25, 2014 16:51
A thread-safe implementation of Singleton in Python
import threading
# A thread-safe implementation of Singleton pattern
# To be used as mixin or base class
class Singleton(object):
# use special name mangling for private class-level lock
# we don't want a global lock for all the classes that use Singleton
# each class should have its own lock to reduce locking contention
__lock = threading.Lock()
@tkhoa2711
tkhoa2711 / print-lisp.lisp
Created December 17, 2014 16:56
Print a list in Common Lisp
(defun print-list (list)
(format t "~{~A ~}~%" list))
(defun flatten (lst)
"flatten nested list"
(labels ((flatten-rec (lst acc)
(cond ((null lst) acc)
((atom lst) (cons lst acc))
(t (flatten-rec
(car lst)
(flatten-rec (cdr lst) acc))))))
(flatten-rec lst nil)))
@tkhoa2711
tkhoa2711 / timing.py
Created December 17, 2014 17:15
An utility module for timing code execution in Python
"""
An utility module for timing code execution in various ways.
"""
import time
import platform
from functools import wraps
from contextlib import contextmanager
@tkhoa2711
tkhoa2711 / read-line-into-list.lisp
Created December 18, 2014 07:37
Read a line and parse it into a list of items
(defun read-line-into-list ()
(with-input-from-string (in (read-line))
(loop for x = (read in nil nil) while x collect x)))
@tkhoa2711
tkhoa2711 / reverse-nested-list.lisp
Last active August 29, 2015 14:11
Reverse nested list in Common Lisp
(defun reverse-nested-list (list)
"reverse nested list"
(mapcar #'(lambda (l)
(if (not (consp l))
l
(reverse-deep l)))
(reverse list)))
@tkhoa2711
tkhoa2711 / parse-line-to-chars.lisp
Created December 18, 2014 07:44
Parse a line into list of characters
(coerce (read-line) 'list)
@tkhoa2711
tkhoa2711 / loop.lisp
Created December 18, 2014 13:40
Tutorial for loop construct in Common Lisp
; http://www.ai.sri.com/pkarp/loop.html
@tkhoa2711
tkhoa2711 / throttle.py
Last active August 29, 2015 14:20
A simple decorator for throttle functionality in Python
import time, platform
from collections import defaultdict
from functools import wraps
get_time = time.clock if platform.system() == 'Windows' else time.time
__nop = lambda: None
__throttle_last_time = defaultdict(__nop)
def throttle(duration=1, **kw):
@tkhoa2711
tkhoa2711 / multipledispatch.py
Created June 8, 2015 02:42
A barely simple implementation of multiple-value dispatch for Python
def valuedispatch(func):
"""
A simple decorator for multiple dispatch based on values, not types.
Transform a function into generic function, which can have different behaviours
depending upon the values of its keyword arguments.
"""
registry = {}
def register(**kwargs):
"""