๐Ÿ”™ Back to Top

Sun Jul 28 15:39:14 JST 2013

Gaucheใงใฏ positive? ใคใ‹ใ†ใ‚ˆใ‚Š (> _ 0) ใฎๆ–นใŒใ„ใ„ใ‚ˆใจใ„ใ†่ฉฑ

(use srfi-1)
(for-each
  (lambda (i)
    (let1 j (- i 30000)
      (if
      ;(positive? j)
      (> j 0)
      #t #f)
      ))
  (iota 10000000))

็„ผใ้ˆใ—ๆณ•ใ‚„ใฃใฆใฆ๏ผŒ positive?ใฃใฆๅๅ‰้•ทใ„ใ‹ใ‚‰ใ‚ผใƒญใจใฎๅคงๅฐๆฏ”่ผƒใซๆ›ธใๆ›ใˆใŸใ‚‰ๅœฐๅ‘ณใซ้€ŸใใชใฃใŸ

ใฆใฃใใ‚Š R5RS ใงๅฎš็พฉใ•ใ‚Œใฆใ‚‹ใใ‚‰ใ„ใฎใƒ—ใƒชใƒŸใƒ†ใ‚ฃใƒ–ใชๆ‰‹็ถšใใ ใ‹ใ‚‰ ๆœ€้ฉๅŒ–ใ•ใ‚Œใฆใ‚‹ใ‚‚ใฎใ ใจๆ€ใฃใŸใ‘ใฉๅˆฅใซใใ†ใงใ‚‚ใชใ„ใ‚“ใ ใญ

่ฟฝ่จ˜ (Sat Aug 24 21:25:44 JST 2013)

positive?ใ‚ˆใ‚Š>ใฎใปใ†ใŒๆ—ฉใ„ๅ ดๅˆใ‚‚ใ‚ใ‚‹ใ‘ใฉ๏ผŒใใ†ใงใชใ„ๅ ดๅˆใ‚‚ใ‚ใฃใŸ

(time (for-each (^i (if (positive? 1) 'true 'false)) (iota *N*)))
; real   0.155
; user   0.150
; sys    0.000

(time (for-each (^i (if (positive? -23) 'true 'false)) (iota *N*)))
; real   0.131
; user   0.130
; sys    0.000

(time (for-each (^i (if (> 1 0) 'true 'false)) (iota *N*)))
; real   0.140
; user   0.140
; sys    0.000

ๅฎšๆ•ฐใ‚’ๅผ•ๆ•ฐใซใ—ใฆใ‚‚ใ—ใ‚‡ใ†ใŒใชใ„ใงใ—ใ‚‡

(time (for-each (^i (if (positive? i) 'true 'false)) (iota *N*)))
; real   0.166
; user   0.160
; sys    0.000

(time (for-each (^i (if (> i 0) 'true 'false)) (iota *N*)))
; real   0.141
; user   0.140
; sys    0.000

ใ†ใ‚“๏ผŒใ‚„ใฃใฑใ‚Š positive? ใ‚ˆใ‚Š > ใฎใŒๆ—ฉใ„

ใƒžใ‚ฏใƒญใซใ™ใ‚‹ใฎใŒ่‰ฏใ„ใช

(define-macro (positive? x) `(> ,x 0))