Skip to content

Instantly share code, notes, and snippets.

@m2ym
m2ym / rtq.ml
Created November 26, 2012 16:01
Real Time Queue in OCaml
$ ocamlopt unix.cmxa rtq.ml -o rtq
$ OCAMLRUNPARAM=h=500M,s=500M,v=255 ./rtq
@m2ym
m2ym / BinHeap.hs
Created November 25, 2012 17:27
Binominal Heap in Haskell
module BinHeap (
Heap,
empty,
insert,
findMin,
deleteMin,
fromList,
toList
) where
@m2ym
m2ym / clack+optima.lisp
Created November 25, 2012 16:15
Clack + Optima
(ql:quickload '(:clack :optima :optima.ppcre))
(defpackage :demo
(:use :cl :optima :optima.extra :optima.ppcre))
(in-package :demo)
(defun app (env)
(match env
((plist :request-method :get
:request-uri (or "/" (ppcre "^/(.+)$" name)))
@m2ym
m2ym / hierarchical-packages.lisp
Created September 11, 2012 10:22
Hierarchical packages using user-extensible packages
(in-package :cl-user)
(defstruct (hierarchical-package (:include sb-package:standard-package)))
(defmethod sb-package:find-package (package-designator (package hierarchical-package))
(flet ((find-package-from-string (string)
(when (and (> (length string) 0)
(char= (elt string 0) #\.))
(setq string (concatenate 'string (package-name package) string)))
(call-next-method string package)))
@m2ym
m2ym / shibuya-el-position-paper.md
Created August 21, 2012 23:37 — forked from ainame/shibuya-el-position-paper.md
shibuya.elのポジションペーパーです。githubアカウントをお持ちの方はforkしてお使いください。

Shibuya.el#1 ポジションペーパー

Personal

  • 名前(任意)

    • 松山朋洋
  • Twitter or Facebookのアカウント or HN等

  • @m2ym

@m2ym
m2ym / eplislon-production-bug-of-cl-yacc.lisp
Created May 18, 2012 09:22
Epsilon-production bug of CL-YACC
;; BUG1: Unnecessary readin tokens
(in-package :cl-user)
(yacc:define-parser *parser*
(:start-symbol start)
(:terminals ())
(start))
(yacc:parse-with-lexer (lambda () (error "BUG")) *parser*)
@m2ym
m2ym / mapreduce.lisp
Created May 16, 2012 01:26
reduce and mapcar
(in-package :cl-user)
(defun dot-product (lst1 lst2 &optional (acc 0))
"Computes the dot product of two sequences, represented as lists."
(if (not lst1)
acc
(let ((x (first lst1))
(y (first lst2))
(lst11 (rest lst1))
(lst22 (rest lst2)))
@m2ym
m2ym / skip.rb
Created May 7, 2012 06:27
Skip N lines
#!/usr/bin/env ruby
ARGV.shift.to_i.times { ARGF.gets }
print ARGF.read
@m2ym
m2ym / bluewatch.sh
Created April 1, 2012 16:28
Sleep MacBook when a bluetooth device turned off
#!/bin/bash
bluetooth-device-is-connected() {
system_profiler SPBluetoothDataType \
| grep $1 -A 10 \
| awk '/Connected/ { print $2 }' \
| head \
| grep -q Yes
}
@m2ym
m2ym / pp-macroexpand.el
Created March 28, 2012 03:02
SLIME-like macro expansion for Emacs Lisp
(defun pp-macroexpand ()
(interactive)
(save-excursion
(pp-macroexpand-expression (read (current-buffer)))))
(dolist (map (list lisp-interaction-mode-map emacs-lisp-mode-map))
(define-key map (kbd "C-c RET") 'pp-macroexpand))
(when (featurep 'popwin)
(push '("*Pp Macroexpand Output*" :noselect t) popwin:special-display-config))