文档章节

【SICP练习】106 练习3.7

NoMasp
 NoMasp
发布于 2015/09/08 21:45
字数 392
阅读 1
收藏 0

练习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柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp

本文转载自:http://blog.csdn.net/nomasp/article/details/44202757

NoMasp
粉丝 7
博文 334
码字总数 0
作品 0
镇江
程序员
私信 提问
李雯 2017-3-15 工作日报

8:00~9:00 業務内容: 1>处理 Amazon 网络订单5张,本味1张 成果: 1.友盛売上伝票6张 2.友利売上伝票6张 3.友利仕入伝票6张 4.送り状6张 5.振替伝票0张 9:00~12:00 業務内容: 根据友盛売上和聖...

ribunn
2017/03/15
0
0
MULE新手入门

对于新手来说,可能最需要的是先了解mule的基础知识和语法,这时,可以先看《MULE3.2节点详解.pdf》,了解mule的结构、常用参数获取方法、一些基础控件。 好了,现在已经对mule有了初步的了解...

yzbty23
2016/08/09
370
0
韭菜创业日记第49篇:最简单的低买高卖为什么就是做不到

最近继续在看投资的书,今天接着写点关于投资的感想。 一切的投资行为,最终追求的不就是低买高卖么?是的,就是这么简单,就是低买高卖。 如此简单的事情,为什么80%的人是亏钱呢?半数以上...

唐晓阳
2018/05/22
0
0
李雯 2017-3-16 工作日报

8:00~9:00 業務内容: 1>处理 Amazon 网络订单6张,本味1张 成果: 1.友盛売上伝票7张 2.友利売上伝票7张 3.友利仕入伝票7张 4.送り状7张 5.振替伝票1张 9:00~12:00 業務内容: 根据3.10amazon2...

ribunn
2017/03/16
1
0
Ravi 0.18 发布,Lua 5.3 衍生编程语言

Ravi 编程语言是 Lua 5.3 的一个衍生,有限的可选静态类型,基于 LLVM 和 libgccjit 的 JIT 编译器。Ravi 的名字来自梵语的太阳。有趣的是,Lua 的前身是 Sol,它支持静态类型,Sol 是葡萄牙...

王练
2016/12/11
1.4K
2

没有更多内容

加载失败,请刷新页面

加载更多

spring-boot-maven-plugin not found的解决方案。

通过IDE创建一个springboot项目, <plugin> <groupId>org.springframework.boot</groupId>//这行红色 <artifactId>spring-boot-maven-plugin</artifactId>//这行红色</plugin> 提示sprin......

一片云里的天空
今天
52
0
OSChina 周三乱弹 —— 我可能是个憨憨

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @宇辰OSC :分享Hare Je的单曲《Alan Walker-Faded(Hare Je remix)》: #今日歌曲推荐# 可以放松大脑的一首纯音乐 《Alan Walker-Faded(Har...

小小编辑
今天
99
0
搞定SpringBoot多数据源(3):参数化变更源

春节将至,今天放假了,在此祝小伙伴们新春大吉,身体健康,思路清晰,永远无BUG! 一句话概括:参数化变更源意思是根据参数动态添加数据源以及切换数据源,解决不确定数据源的问题。 1. 引言...

mason技术记录
昨天
99
0
sql 基础知识

sql 基础知识 不要极至最求一条sql语句搞定一切,可合理拆分为多条语句 1. sql 变量定义与赋值 Sql 语句中,直接在SELECT使用@定义一个变量,如:[@a](https://my.oschina.net/a8856225a)。 ...

DrChenXX
昨天
57
0
MacOSX 安装 TensorFlow

TensorFlow是一个端到端开源机器学习平台。它拥有一个包含各种工具、库和社区资源的全面灵活生态系统,可以让研究人员推动机器学习领域的先进技术的。 准备 安装 Anaconda TensorFlow 安装的...

叉叉敌
昨天
79
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部