zoukankan      html  css  js  c++  java
  • SICP:2.40 2.41

    #lang racket
    
    (define (accumulate op initial seq)
      (if (null? seq)
          initial
          (op (car seq)
          (accumulate op initial (cdr seq))))
      );accumulate
    
    (define (append lst1 lst2)
      (if (null? lst1)
          lst2
          (cons (car lst1)
            (append (cdr lst1) lst2)))
      );append
    
    (define (enumerate-interval i j)
      (if (> i j)
          '()
          (cons i
            (enumerate-interval (+ 1 i) j))
          ));enumerate-interval
    
    
    (define (unique-pairs n)
      (accumulate append
              '()
              (map (lambda(i) (map (lambda (j) (list i j))
                       (enumerate-interval (+ i 1) n)))
               (enumerate-interval 1 n));map
              );accumulate
      );unique-pairs
    
    (unique-pairs 3)
    
    (define (flatmap proc seq)
      (accumulate append '() (map proc seq))
      );flatmap
    
    (define (filter predicate seq)
      (cond ((null? seq) '())
        ((predicate (car seq))
         (cons (car seq) (filter predicate (cdr seq))))
        (else (filter predicate (cdr seq))));cond
      );filter
    
    (define (unique-triple n)
      (flatmap
       (lambda (x) (map (lambda (j) (cons x j))
                (unique-pairs (- x 1)));map
           );lambda
       (enumerate-interval 1 n));flatmap
      );unique-triple
    
    (unique-triple 5)

     unique-pairs输出序对(i, j), 其中1<=i < j<= n

    unique-triple输出序对(i, j, z)

    这里用到了嵌套映射

  • 相关阅读:
    POJ:1703-Find them, Catch them(并查集好题)(种类并查集)
    POJ:2236-Wireless Network
    POJ:2010-Moo University
    POJ :3614-Sunscreen
    POJ:2395-Out of Hay
    Aizu:2224-Save your cats
    POJ:2377-Bad Cowtractors
    CSS属性大全
    博客园背景设置CSS代码
    W3C标准以及规范
  • 原文地址:https://www.cnblogs.com/wizzhangquan/p/4457440.html
Copyright © 2011-2022 走看看