2014年3月16日日曜日

開発環境

プログラミングGauche(Kahuaプロジェクト (著)、 川合 史朗 (監修)、オライリージャパン)の8章(真偽値と条件判断)、8.3(真偽値を扱う手続き)、練習問題(p.101)を解いてみる。

その他参考書籍

練習問題(p.101)

コード(BBEdit, Emacs)

sample.scm

#!/usr/bin/env gosh
;; -*- coding: utf-8 -*-

;; これまでに書いた手続き
(load "./procedures.scm")

(define (any-pred . preds)
  (lambda (x)
    (any (lambda (pred)
           (pred x))
         preds)))

(define (every-pred . preds)
  (lambda (x)
    (every (lambda (pred)
             (pred x))
           preds)))

(define positive-or-integer? (any-pred integer? positive?))

(define positive-integer? (every-pred integer? positive?))

(print "正の数または整数かどうか")
(for-each (lambda (x)
            (print x ": " (positive-or-integer? x)))
          '(1 2 1.2 2.1 -1 -1.2 -2 -2.1))

(print "正の整数かどうか")
(for-each (lambda (x)
            (print x ": " (positive-integer? x)))
          '( 4 -3 2.4))

入出力結果(Terminal(gosh), REPL(Read, Eval, Print, Loop))

$ ./sample.scm
正の数または整数かどうか
1: #t
2: #t
1.2: #t
2.1: #t
-1: #t
-1.2: #f
-2: #t
-2.1: #f
正の整数かどうか
4: #t
-3: #f
2.4: #f
$

0 コメント:

コメントを投稿