zoukankan      html  css  js  c++  java
  • 【SICP练习】106 练习3.7

    练习3-7

    原文

    Exercise 3.7. Consider the bank account objects created by make-account, with the password modification described in exercise 3.3. Suppose that our banking system requires the ability to make joint accounts. Define a procedure make-joint that accomplishes this. Make-joint should take three arguments. The first is a password-protected account. The second argument must match the password with which the account was defined in order for the make-joint operation to proceed. The third argument is a new password. Make-joint is to create an additional access to the original account using the new password. For example, if peter-acc is a bank account with password open-sesame, then

    (define paul-acc 
     (make-joint peter-acc 'open-sesame 'rosebud))

    will allow one to make transactions on peter-acc using the name paul-acc and the password rosebud. You may wish to modify your solution to exercise 3.3 to accommodate this new feature.

    分析

    make-joint需要有3个参数:
    1.有密码保护的帐户名
    2.必须与账号的密码匹配的原密码
    3.新密码

    而其会返回一个过程,因此在此处需要一个lambda表达式,并且其有一个参数mode和一个传入的密码参数。另外在输出错误信息的函数中也需要一个参数,即是它并不使用,只是出于兼容性的考虑,在前面的博客中我们也遇到过这种问题。

    代码

    (define (make-joint origin-acc old-password new-password)
    
      (define (display-wrong-message msg)
        (display "Incorrect password"))
    
      (lambda (given-password mode)
        (if (eq? given-password new-password)
            (origin-acc old-password mode)
            display-wrong-message)))
    ;Value: make-joint



    感谢访问,希望对您有所帮助。 欢迎关注或收藏、评论或点赞。


    为使本文得到斧正和提问,转载请注明出处:
    http://blog.csdn.net/nomasp


    版权声明:本文为 NoMasp柯于旺 原创文章,如需转载请联系本人。

  • 相关阅读:
    新浪微博 js 解密
    新浪微博、qq rsa密码加密c#实现
    C#版本的discuz authcode函数
    搬地方了,在github弄了个新博客
    python 发送邮件
    通用网页广告监测,ADBlock plus算法的C#实现。
    58同城登录 c#,非直接操作js
    python模块之smtplib: 用python发送SSL/TLS安全邮件
    Python少打字小技巧
    python模块之poplib: 用pop3收取邮件
  • 原文地址:https://www.cnblogs.com/NoMasp/p/4786113.html
Copyright © 2011-2022 走看看