fact関数を暇だったので書いてみた。(本当は暇じゃない)
全然暇じゃないです。正直気晴らしに少し考え事しながら書いてました。
以下は僕が書いたコード
(define (sub1 x) (- x 1)) (define (fact x) (cond ((zero? x) 1) (else (* x (sub1 x)))))
こっちはもうひとつのScheme入門から
(define (fact n) (if (= n 1) 1 (* n (fact (- n 1)))))
まぁ書き終わった後に見比べて思った。
間違ってる??0判定した後に1かけたら結果変わるじゃん!!
まぁzero?のとこを1判定するだけでいいんですけどもね!!
後、僕の場合Scheme入門の影響を受けすぎてifよりcondをどうしても使いたがる病にかかっているようで、まぁ個人的にはとても読みやすいけどどうしたものか。
べき乗書いて遊ぶなど。
(define (expo x y) (cond ((zero? y) 1) (else (* x (expo x (sub1 y))))))
もっと難しいコード沢山書けるようにならないとな…。
けど、物理の公式とか数学の公式とか結構簡単に書けると思うからトライしようとも思う。
- 作者: Daniel P. Friedman,Matthias Felleisen,元吉文男,横山晶一
- 出版社/メーカー: オーム社
- 発売日: 2010/10/22
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 129回
- この商品を含むブログ (32件) を見る