scheme

ちょっと復習というか確認で Java の String.hashCode と同等のアルゴリズム

(define (hash-code str) (define (inner s r) (if (null? s) r (inner (cdr s) (+ (* 31 r) (x->number (car s)))))) (inner (string->list str) 0)) 一応 OpenJDK 7 のコードを拾ってきたけど結果が違ってる... public class S { public static long hashC…

ささいなこと

gosh> (eq? '() (list)) #t gosh> (equal? '() (list)) #t gosh> (assoc 1 '((cons 1 2) (cons 2 3) (cons 3 4))) #f gosh> (assoc 1 (list (cons 1 2) (cons 2 3) (cons 3 4))) (1 . 2) これが何を意味しているのか、なんとなく考えています。 追記 gosh> (…

バケツソート

(define (bucket-sort list n cmp-fn) (define (insertsort l) (let ((i 1)) (while (< i (length l)) (let ((j (- i 1)) (v (ref l i))) (while (and (>= j 0) (> (ref l j) v)) (swap l (+ 1 j) j) (set! j (- j 1))) (set! (ref l (+ 1 j)) v)) (set! i (…

数え上げソート(counting sort)

(define (counting-sort list k cmp-fn) (let ((vec (list->vector list)) (counter (make-vector k 0)) (i 0) (idx 0)) (while (< i (length list)) (vector-set! counter (vector-ref vec i) (+ (vector-ref counter (vector-ref vec i)) 1)) (set! i (+ 1…

macosx には seq がなかったので作ってみた

Mac のターミナル上で seq を使おうと思ったら無かったので、とりあえず作ってみました。

久々に見直したら思考が止まった

前に書いてたもろもろを Mac に移してみたけれど、これまで何やってたのか分からん... とりあえず前を見てなくてもよさそうなストリームらへんから再開しようと思います。