Scheme

フルパスから相対パスを求める

ref:http://d.hatena.ne.jp/fumokmm/20110817/1313590148 こんどは Scheme で。 (use srfi-13) (define (init lst) (cond ((null? lst) (error "init: empty list")) ((null? (cdr lst)) '()) (else (cons (car lst) (init (cdr lst)))))) (define (relative…

tail call

ref:記録: [メモ]再帰を使うとn-gramはすっきり書ける うーん、Scheme のコードは末尾再帰になっていないので、普通にスタックを食い尽くす危険性があるように思うのだが、どうなんだろう。Scheme に詳しくないのではずしているかもしれないが。あと、length…

reducel/reducer Scheme編

ref:[・ _ゝ・]日記を書くはやみずさん - reduce(r|l) via:ときどきの雑記帖 リターンズ 2007年5月 - 生暖かく見守っているのですが (define (reducer kons ls) (if (< (length ls) 2) (car ls) (kons (car ls) (reducer kons (cdr ls))))) (define (reducel…

fact いろいろ

階乗を求めるコードをいろいろなバージョンで。特に意味はない。 (use srfi-1) (define (fact-1 n) (letrec ((fact-sub (lambda (n result) (if (> n 1) (fact-sub (- n 1) (* n result)) result)))) (fact-sub n 1))) (define (fact-2 n) (apply * (iota n …

nth

ref:神様なんて信じない僕らのために - 僕も生暖かく見守っているのですが ref:ときどきの雑記帖 リターンズ - 生暖かく見守っているのですが ref:MSN相談箱 LISPのプログラミングについて 実はこういう問題は仕様をどこまで詰められるか、という試験として…