求scheme大神讲解一个作业题目的要求是写一个功能(new-wallet),这个函数没有参数,如果现在存在一个wallet,则输出"you already have a wallet",没有的话就建个新的wallet,然后输出"you now have a wallet",其中

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 16:27:21
求scheme大神讲解一个作业题目的要求是写一个功能(new-wallet),这个函数没有参数,如果现在存在一个wallet,则输出

求scheme大神讲解一个作业题目的要求是写一个功能(new-wallet),这个函数没有参数,如果现在存在一个wallet,则输出"you already have a wallet",没有的话就建个新的wallet,然后输出"you now have a wallet",其中
求scheme大神讲解一个作业
题目的要求是写一个功能(new-wallet),这个函数没有参数,如果现在存在一个wallet,则输出"you already have a wallet",没有的话就建个新的wallet,然后输出"you now have a wallet",其中的wallet是一个可空的list包含所有基本的货币价值,比如($1,$2,$5,$10)...等等等等.现在的问题是我的功能里没有参数,那么我该如何判断现在是否有一个wallet存在?
上面的wallet表示的是每个钞票的数目,比如(1,2,3,0,0,0,0),就是1张1,2张2,3张5,10,20,50和100都是0张

求scheme大神讲解一个作业题目的要求是写一个功能(new-wallet),这个函数没有参数,如果现在存在一个wallet,则输出"you already have a wallet",没有的话就建个新的wallet,然后输出"you now have a wallet",其中
这题需要定义一个全局变量 wallet, 初始化的时候令 wallet 为 nil, 表示现在没有钱包.
当建立一个新钱包的时候, 把 wallet 设为 '(0 0 0 0 0 0 0), 表示一个空钱包.
这样, 用 null? 就可以判定钱包是否存在.
代码如下:
(define wallet nil)
(define (new-wallet)
(if (null? wallet)
(begin
(set! wallet '(0 0 0 0 0 0 0))
(display "You now have a wallet."))
(display "You already have a wallet.")))

(null? wallet)

ghghghgjbnbvnhgfnhgkmnm