zoukankan      html  css  js  c++  java
  • 全民Scheme(2):来自星星的你


    一门编程语言,假设不能对你思考编程的方式产生影响。就不值得去学习。——  Alan Perlis

    (define rember*
      (lambda (a list)
        (cond
          ((null? list) '())
          ((atom? (car list)) (cond 
                          ((eq? a (car list)) (rember* a (cdr list)))
                          (else (cons (car list) (rember* a (cdr list))))))
          (else (cons (rember* a (car list)) (rember* a (cdr list)))))))


    (rember* 'cup '((coffee) cup ((tea) cup) (and (hick)) cup))

    (define insertR*
      (lambda (new old l)
        (cond
          ((null? l) '())
          ((atom?

    (car l)) (cond
                             ((eq?

    (car l) old) (cons old (cons new (cdr l))))
                             (else (cons (car l) (insertR* new old (cdr l))))))
          (else (cons (insertR* new old (car l)) (insertR* new old (cdr l)))))))

    (insertR* 'roast 'chuck '((how much (wood))
                              could
                              ((a (wood) chuck))
                              (((chuck)))
                              (if (a) ((wood chuck)))
                              could chuck wood))

    (define occur*
      (lambda (a l)
        (cond
          ((null?

    l) 0)
          ((atom?

    (car l)) (cond ((eq? a (car l)) (+ 1 (occur* a (cdr l))))
                                 (else (occur* a (cdr l)))))
          (else (+ (occur* a (car l)) (occur* a (cdr l)))))))

    (occur* 'banana '((banana) (split ((((banana ice)))
                                       (cream (banana))
                                       sherbet))
                               (banana)
                               (bread)
                               (banana brandy)))
    (define subst*
      (lambda (new old l)
        (cond
          ((null? l) '())
          ((atom? (car l)) (cond
                             ((eq? old (car l)) (cons new (subst* new old (cdr l))))
                             (else (cons (car l) (subst* new old (cdr l))))))
          (else (cons (subst* new old (car l)) (subst* new old (cdr l)))))))
    (subst* 'orange 'banana '((banana) (split ((((banana ice)))
                                       (cream (banana))
                                       sherbet))
                               (banana)
                               (bread)
                               (banana brandy)))

    (define insertL*
      (lambda (new old l)
        (cond
          ((null? l) '())
          ((atom?

    (car l)) (cond
                            ((eq?

    old (car l)) (cons new (cons old (insertL* new old (cdr l)))))
                            (else (cons (car l) (insertL* new old (cdr l))))
                            ))
          (else (cons (insertL* new old (car l)) (insertL* new old (cdr l)))))))

    (insertL* 'pecker 'chuck '((how much (wood))
                               could
                               ((a (wood) chuck))
                               (((chunck)))
                               (if (a) ((wood chuck)))
                               (could chuck wood)))

    (define member*
      (lambda (a l)
        (cond
          ((null? l) #f)
          ((atom? (car l)) (cond
                             ((eq?

    (car l) a) #t)
                             (else (member* a (cdr l)))))
          (else (or (member* a (car l))
                    (member* a (cdr l)))))))

    (member* 'chips '((potato) (chips ((with) fish)(chips)))) 

  • 相关阅读:
    ubuntu用mentohust连接ruijie
    vim系统剪切板
    JSP 页面中用绝对路径显示图片
    response.setContentType与 request.setCharacterEncoding 区别
    安装mysql数据库要注意的
    eclipse link方式安装插件安装不上
    Windows程序调用dll
    DP 问题
    LeetCode Repeated Substring Pattern
    LeetCode Number of Segments in a String
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6720060.html
Copyright © 2011-2022 走看看