Skip to content

Instantly share code, notes, and snippets.

trait Memorized[T,R] {
import scala.collection.mutable._
val cache = new HashMap[T,R]
def cacheOrApply( t:T )( f: => R ):R = cache get(t) getOrElse{
val rv = f
cache += t -> rv
println("do %s:%s" format(t, rv))
rv
}
@m2ym
m2ym / xmonad.hs
Created January 7, 2011 03:33
Tomohiro Matsuyama's XMonad Configuration
import qualified Data.Map as M
import XMonad
import qualified XMonad.StackSet as W
import XMonad.Actions.WindowGo
import XMonad.Actions.CycleWS
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.EwmhDesktops
import XMonad.Layout
@kmizu
kmizu / gist:1876800
Last active December 22, 2019 00:05 — forked from gakuzzzz/gist:1865400
Scala環境構築

Scala 開発環境構築手順

前提条件

  • JDKがinstall済みであること
  • java コマンドに環境変数Pathが通っていること
@brikis98
brikis98 / crawler.scala
Created April 1, 2012 20:05
Seven Languages in Seven Weeks: Scala, Day 3
import io.Source
import scala.actors.Actor._
// Regex to pick up external links; very simplified, so it'll miss some
val linkRegex = "(?i)<a.+?href=\"(http.+?)\".*?>(.+?)</a>".r
object PageLoader {
def load(url: String) = {
try {
Source.fromURL(url).mkString
@pzol
pzol / README.md
Created June 25, 2012 07:45
Monadic vs Imperative code in ruby

Monadic vs Imperative

Here is a comparison of two pieces of code that do basically the same thing.

So what we have here is a chain of functions depending on each other, each consecutive takes the result of the previous one for further processing. If either of them fails, the rest shall not be executed.

  1. validate parameters received from the outside world in a Hash
  2. convert one of the parameters into an object
  3. do a search in the database
@y-yu
y-yu / inherit.md
Created August 9, 2012 06:57
JavaScriptの継承について

JavaScriptの継承について

全然理解出来てなかったので調べてみた。

経緯

function f () {
	// Class
}
@thinca
thinca / vimrc
Created September 7, 2012 13:33
thinca's vimrc for reading-vimrc #10 (2012/09/08)
" == Naming convention. == {{{1
" Command name
" - CamelCase
" Global function name
" - CamelCase
" Local function name
" - s:split_by_underbar
" Group name for autocmd
" - split-by-dash
" In vimrc, start with "vimrc"
// data Free f a = Pure a | Free (f (Free f a))
//
// instance Functor f => Monad (Free f) where
// return = Pure
// Pure a >>= k = k a
// Free fm >>= k = Free (fmap (>>=k) fm)
sealed trait FreeM[S[+_], +A] {
private case class FlatMap[S[+_], A, +B](a: FreeM[S, A], f: A => FreeM[S, B]) extends FreeM[S, B]
@ponkore
ponkore / clojure-reader-macro.md
Created December 3, 2012 15:32
Clojure のリーダーマクロについて (lisp reader macro advent calendar 2012 の記事です)。

Clojure のリーダーマクロについて

この記事は、lispリーダーマクロアドベントカレンダー の4日目の記事です。 タイトルにある通り、Clojure でのリー ダーマクロについて取り扱います(対象とする Clojure のバージョンは 1.4)。

はじめに

@rummelonp
rummelonp / percol_zsh.md
Created December 7, 2012 15:57
percol 入れて zsh と組み合わせたら超便利

percol 入れて zsh と組み合わせたら超便利

だったので紹介

percol とは

percol は入力の1行を1候補として,部分一致かつ AND 検索で絞り込みし,選択した候補を出力するコマンドです.端的に言えば Emacs の anything.el のコマンド版です.