Scheme

puzzle : 4つの数で10を作る問題(または小町算?)

問2「9以下の自然数を4つ適当に選ぶ(重複を許す)。この4つの自然数と四則演算を用いて10を生成することを考えよう。このとき(1)条件を満たすどのような自然数の組み合わせでも生成することが可能であるか? (2)任意の組み合わせが与えられたと…

区間演算パッケージ

計算機プログラムの構造と解釈作者: ジェラルド・ジェイサスマン,ジュリーサスマン,ハロルドエイブルソン,Gerald Jay Sussman,Julie Sussman,Harold Abelson,和田英一出版社/メーカー: ピアソンエデュケーション発売日: 2000/02メディア: 単行本購入: 35人 …

RE: RE: RE: 美人時計の画像ファイルが欲しい

美人時計というすばらしいWebサービスがあります。1分ごとに美人が表示される素晴らしいアプリですが、悲しい技術者の性。URL分かるんだったら画像取得できるし、Javascirptも読めればprofileも取得できちゃうじゃん!とか思っちゃうわけです。というわけで…

closure

d:id:syou6162:20080728で > hoge <- "hogehoge" > (function(){cat(hoge,fill=T)})() hogehoge が動くのが気持ち悪いと書いてある。lambdaも同じだからなぁ、私はこれ気にならないというか、慣れると便利というか、lambdaかわいいよlambdaというか(ぉ私も…

ナベアツを作ってみた

(define (nabeatsu) (let ((continue 1) (return #f)) (letrec ((fb (lambda (n) (let ((divisible-by-3? (lambda () (zero? (modulo n 3)))) (has-3? (lambda () (let loop ((init n) (flag #f)) (let ((q (quotient init 10)) (r (modulo init 10))) (if (…

円を作ってみた

(define (make-circle radius) (let rows ((r 0) (row '())) (if (= r (+ (* 2 radius) 1)) (reverse row) (rows (+ r 1) (cons (let columns ((c 0) (col '())) (if (= c (+ (* 2 radius) 1)) (reverse col) (columns (+ c 1) (cons (if (> (magnitude (mak…

クラス作ってみた

;; クラス定義マクロ (define-syntax class-gen (syntax-rules () ((_ classname ((iv var) ...)) (define (classname) (let* ((iv var) ...) (let ((table `((iv . ,v) ...))) (lambda (m) (cdr (assq m table))))))))) ;; 例:カウンタクラスの作成 (class…

ふしぎのapply

(apply map list '((1 2 3) (4 5 6))) ;=> ((1 4) (2 5) (3 6)) これをみて、行列の転置みたいなことができるのにまず目から鱗が落ちた。 (apply + 1 2 '(3 4 5)) ;=> 15 これはapplyの一般的な使い方だけども、普通に関数をlambdaで定義している時の「常識…

組合せの生成

;;; combination.scm (define (getbits n int) (let loop((index 0) (bits '())) (if (= index n) (map (lambda (b) (if b 1 0)) bits) (loop (+ index 1) (cons (logbit? index int) bits))))) (define (next-combination current) (let ((sb (lambda (x) (…

お茶の時間

今日のは何の役にも立たないネタです。オチもありません。 (use srfi-1) (define -> lambda) (map (->(x) (* x x)) (iota 10)) ; (0 1 4 9 16 25 36 49 64 81) (ヒント:Ruby 1.9で->はlambda)lambdaを楽に書きたい人にはいいのかも。私は普段だったら…や…