Skip to content

Instantly share code, notes, and snippets.

@hyone
hyone / gist:1621163
Created January 16, 2012 14:39
Parallel download images from a picture site
;; (defproject parallel-download "1.0.0-SNAPSHOT"
;; :description "FIXME: write description"
;; :dependencies [[org.clojure/clojure "1.3.0"]
;; [clj-http "0.2.7"]
;; [enlive "1.0.0-SNAPSHOT"]]
;; :dev-dependencies [[swank-clojure "1.3.4"]]
;; :main parallel-download.core)
(ns parallel-download.core
(:use [clojure.string :only (join split)]
@hyone
hyone / gist:1331070
Created November 1, 2011 16:38
中心点の座標を持つ二つの図形(点、正方形、長方形、円)が重なりを持つかどうか判定する
type figure =
Point
| Circle of float
| Rectangle of float * float
| Square of float;;
type 'a with_location = { loc_x: float; loc_y: float; body: 'a };;
let diff x y = abs_float (x -. y)
@hyone
hyone / gist:1323137
Created October 28, 2011 19:04
evil-text-object-defun
(require 'evil)
(setq evil-move-defun-alist
'((ruby-mode . (ruby-beginning-of-defun . ruby-end-of-defun))
(c-mode . (c-beginning-of-defun . c-end-of-defun))
(js2-mode . (js2-beginning-of-defun . js2-end-of-defun))))
(defun evil-move-defun (count &optional begin-defun end-defun)
"Move by defun"
(let ((count (or count 1))
@hyone
hyone / gist:1309608
Created October 24, 2011 17:42
elscreen-next, elscreen-previous を引数を受けとれるように改良。
(require 'elscreen)
(defun elscreen-cycle (count &optional previous)
"Switch the next/previous screen cyclically by count."
(cond
((elscreen-one-screen-p)
(elscreen-message
(format "You cannot escape from screen %d!"
(elscreen-get-current-screen))))
(t
@hyone
hyone / gist:1065043
Created July 5, 2011 15:21
100 doors by ruby
# 安直にやる
doors1 = (1..100).inject([false] * 100) {|a,p|
a.each_with_index.map {|st,i| (i+1) % p == 0 ? !st : st }
}.map {|b| b ? :open : :close }
# 平方数だけが最終的 open になる、という性質を使う
doors2 = (1..100).map {|i|
root = Math.sqrt(i)
root == root.to_i ? :open : :close
}
@hyone
hyone / hyone-4clojure-solution97.clj
Created July 3, 2011 18:46 — forked from anonymous/hyone-4clojure-solution97.clj
4clojure #97 - Pascal's Triangle
;; hyone's solution to Pascal's Triangle
;; https://4clojure.com/problem/97
(fn [n] (nth (iterate #(vec (map + (conj % 0) (cons 0 %))) '[1]) (dec n)))
@hyone
hyone / hyone-4clojure-solution88.clj
Created July 1, 2011 12:36 — forked from anonymous/hyone-4clojure-solution88.clj
4clojure #88 - Symmetric Difference
;; hyone's solution to Symmetric Difference
;; https://4clojure.com/problem/88
#(cond
(empty? %1) %2
(empty? %2) %1
:else (apply disj (apply conj %1 %2) (filter %1 %2)))
@hyone
hyone / hyone-4clojure-solution69.clj
Created June 30, 2011 14:20 — forked from anonymous/hyone-4clojure-solution69.clj
4clojure #69 - Merge with a Function
;; hyone's solution to Merge with a Function
;; https://4clojure.com/problem/69
(fn my-merge-with [f & maps]
(reduce
(fn [a b]
(reduce
(fn [x [k v]]
(assoc x k (if (b k) (f v (b k)) v)))
b a))
@hyone
hyone / hyone-4clojure-solution65.clj
Created June 29, 2011 05:06 — forked from anonymous/hyone-4clojure-solution65.clj
4clojure #65 - Black Box Testing
;; hyone's solution to Black Box Testing
;; https://4clojure.com/problem/65
(defn seq-type [coll]
(let [base (empty coll)]
(cond
(= base {}) :map
(= base #{}) :set
(= base '()) (if (reversible? coll) :vector :list))))
@hyone
hyone / group-a-sequnce.clj
Created June 28, 2011 17:52
4clojure #63 - Group a Sequence
;; hyone's solution to Group a Sequence
;; https://4clojure.com/problem/63
(fn my-group-by [pred coll]
(reduce
(fn [dict m]
(let [ret (pred m)]
(assoc dict ret (conj (or (dict ret) []) m))))
{} coll))