zoukankan      html  css  js  c++  java
  • 1.33 (过滤累积和 求区间内所有素数之和)

    (define (filtered-accumulate filter? combiner null-value term a next b)
      (define (iter a result)
        (cond ((> a b) result)
              ((filter? a) (iter (next a)
                             (combiner (term a) result)))
              (else (iter (next a)
                          result))))
      (iter a null-value))
    
    (define (smallest-divisor n)
      (find-divisor n 2))
     
    (define (find-divisor n test-divisor)
      (cond ((> (square test-divisor) n) n)
            ((divides? n test-divisor) test-divisor)
            (else (find-divisor n (+ test-divisor 1)))))
     
    (define (divides? a b)
      (= (remainder a b) 0))
     
    (define (prime? n)
      (if (< n 2)
          #f
          (= n (smallest-divisor n))))
     
    (define (square x)
      (* x x))
    
    (define (primes-sum a b)
      (filtered-accumulate prime?
                +
                0
                (lambda (x) x)
                a
                (lambda (x) (+ x 1))
                b))
    
    (primes-sum 1 10)
    

      

  • 相关阅读:
    windows下mysql多实例安装
    linux下mysql多实例安装
    redisAPI整理
    Flink
    Google Dremel架构
    Apache Kylin
    Phoenix概述
    SQL on Hadoop技术综述
    AES对称加密算法
    Hawq架构
  • 原文地址:https://www.cnblogs.com/R4mble/p/7893713.html
Copyright © 2011-2022 走看看