2010/03/27

敷金は結構な金額が返ってきたりする

以前、引っ越した際に「掃除や修繕等で、敷金はほとんど返ってこないと思って下さい。」と不動産屋さんに言われました。「そうなんですか。(そんなはずないやろ~)」と思って調べてみました。結果的には電話一本で7割くらい戻ってきました。

「『原状回復ガイドライン』に添った敷金の用途の明細を下さい。」というようなことを言っただけです。同じように言ったからといって、返ってくるとは限らないとは思います。ただ、この辺の事情を知っておくと交渉の余地があるかもしれません。
掃除代金や修繕費用は原則的には大家さんが負担しないといけない、などのガイドラインがあるとかないとか(ハッキリ覚えていませんが)。

あまりよく覚えていませんが、引越しの季節ですし、調べてみてはいかがでしょうか。

2010/03/26

確定申告に行ってきました

初めての確定申告。遅ればせながら行ってきました。本来は15日までだったのですが、諸事情により今日行ってきました。特に問題なく、すぐに終わりました。10分もかからなかったかもしれません。15日を過ぎているので人が少なくて、逆によかったかも知れません。

必要なものは
  • 源泉徴収票
  • 通帳 or キャッシュカード
  • 保険料の納付書(などの証明できるもの)
  • 生命保険の書類
ぐらいでしょうか。

append1, append

昨日TLで見かけたので。いろいろ書いてみるつもりでしたが、たいして差のないコードばかりになりました。やはりfold系は、余計なことを考えなくて済むので好きです。
recur, letrec, named-let, cps, let/cc, fold, fold-right など。


追記

unfold, unfold-right


プログラミングGauche

MCTSのカード


先日、財布と一緒に掲題のカード無くしたんだけど、再発行できるのかな。
そうそう、こういうカード↓。





srfi さーふぃ

srfiは「さーふぃ」(とか「するふぃー」)と読むらしいですね。つい先日まで「えすあーるえふあい」と読んでましたよ。わりと長くそう読んでいたので、第一声で「さーふぃ」と私の口から出ることはまずありません。
はてな住人がかかわったものに、id:higepon 氏が、CGIライブラリさえポータブルに書けないという事実に奮起して作られた、SRFI 98: An interface to access environment variables がある
ところでこれって、何で書かれているのでしょうか。Schemeで書かれているのでしょうか。Schemeで書かれていないのでしょうか。どこかにソースが落ちていたりするのでしょうか。

念のため確認。SLIBは「えすりぶ」で良いですよね。まさか「すりぶ」とか「すりびー」とか「すらいぶ」とか。SLIB・・・、traceしか使ったことないです。

追記

ん?ん?
もしかして、srfiって仕様だけで実装は処理系任せ的な?

追記2

Ω ΩΩ<な、なんだってー

プログラミングGauche

2010/03/25

cycle

リストを受け取り、そのリストの要素を先頭から順に返す(全ての要素を返したら、再びリストの先頭を返す)関数を返す関数cycle
こうかな。

circular-listってのがあるのか。中はどうなってんだろう。
let1, if-let1, rlet1, and-let*, fluid-let ...
The Seasoned Schemer

filter-break

ストlisと述語手続きpredを取り、lisの各要素に順にpredを適用して、 predが真の値を返したら直ちにその要素を返すような関数find

The Seasoned Schemer

find-fold/cps

ですです、これです!目が回ります・・・。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
;http://cametan-001.tumblr.com/post/470529715/cps-rt-valvallow
(define (find-fold/cps pred?/cps proc/cps seed lis cont)
  (null?/cps lis
      (lambda (result)
        (if result
     (cont seed)
     (pred?/cps (car lis)
         (lambda (result) ;テキストじゃここが抜けてる。ここがないとダメ。
         (if result
      (proc/cps (car lis)
         seed
         (lambda (seed2)
           (find-fold/cps pred?/cps proc/cps seed2 (cdr lis) cont)))
      (find-fold/cps pred?/cps proc/cps seed (cdr lis) cont))))))))


まあ、ホントの事言うと、プログラミングGaucheのあの例が適切で分かりやすいもの選んでるのか、って言うと疑問なんですけどね。
これは私も、もちょっとシンプルな例はなかったのかなー、と思いました。
書けたとしても書く気にはなれないコードだなと。

プログラミングGauche

auto-complete.el




ちょうど、補完候補の選択が↑↓でしかできないのは、どうやったら変更できるかなー。と思っていたところでした。
(define-key ac-complete-mode-map "\C-n" 'ac-next)
(define-key ac-complete-mode-map "\C-p" 'ac-previous)
(custom-set-faces
 '(ac-candidate-face ((t (:background "dark orange" :foreground "white"))))
 '(ac-selection-face ((t (:background "gray25" :foreground "white")))))
色は適当にこの辺で。

memo, call/cc, named let, do

1
2
3
4
5
6
7
8
9
10
(define (my-reverse ls)
  (let/cc return
   (let ((r #f))
     (let ((l ls) (acc '()))
       (let/cc continue
        (set! r continue))
       (and (null? l) (return acc))
       (set! acc (cons (car l) acc))
       (set! l (cdr l))
       (r '())))))

Scheme:
;; named let
(define (my-reverse ls)
  (let loop ((l ls) (acc '()))
    (if (null? l)
        acc
        (loop (cdr l) (cons (car l) acc)))))
 
(display (my-reverse '(1 2 3 4 5)))
(newline)

;; do
(define (my-reverse ls)
  (do ((l ls (cdr l))
       (acc '() (cons (car l) acc)))
      ((null? l) acc)))

(display (my-reverse '(1 2 3 4 5)))
(newline)

(define (my-reverse ls)
  (do ((l ls (cdr l))
       (acc '() (cons (car l) acc)))
      ((null? l) acc)
    (for-each (lambda (x)
  (for-each display x)
  (newline)) `(("l => " ,l) ("acc => " ,acc)))))

(my-reverse '(1 2 3 4 5))


Output:
1
2
3
4
5
6
7
8
9
10
11
12
(5 4 3 2 1)
(5 4 3 2 1)
l => (1 2 3 4 5)
acc => ()
l => (2 3 4 5)
acc => (1)
l => (3 4 5)
acc => (2 1)
l => (4 5)
acc => (3 2 1)
l => (5)
acc => (4 3 2 1)
1
2
3
4
5
6
7
(define (depth* l)
  (let loop ((e l) (d 1) (acc '(1)))
    (if (null? e)
 (apply max acc)
 (let ((kar (car e)))
   (let ((recur (if (pair? kar) (depth* kar) 0)))
     (loop (cdr e) (+ d recur) (cons d acc)))))))
1
2
3
4
5
6
(define (leftmost l)
  (let/cc skip
   (let loop ((l l))
     (let ((kar (car (if (null? l) (skip l) l))))
       (cond ((pair? kar) (loop kar) (loop (cdr l)))
      (else (skip kar)))))))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(define (filter* pred? l)
  (let loop ((l l))
    (if (null? l)
 '()
 (let ((kar (car l))
       (kdr (cdr l)))
   (let ((fd (loop kdr)))
     ;; let/cc (あるいは call/cc) をここに被せる
     (let/cc skip
      (cons (cond ((pair? kar) (loop kar))
    ((pred? kar) kar)
    ;; 脱出
    (else (skip fd)))
     fd)))))))

プログラミングGauche