【SICP练习】108 练习3.21

练习3-21原文

Exercise 3.21. Ben Bitdiddle decides to test the queue implementation described above. He types in the procedures to the Lisp interpreter and proceeds to try them out:

qqqq1)(() b)

“It’s all wrong!”he complains. “The interpreter’s response shows that the last item is inserted into the queue twice. And when I delete both items, the second b is still there, so the queue isn’t empty, even though it’s supposed to be.” Eva Lu Ator suggests that Ben has misunderstood what is happening. “It’s not that the items are going into the queue twice,” she explains. “It’s just that the standard Lisp printer doesn’t know how to make sense of the queue representation. If you want to see the queue printed correctly, you’ll have to define your own print procedure for queues.” Explain what Eva Lu is talking about. In particular, show why Ben’s examples produce the printed results that they do. Define a procedure print-queue that takes a queue as input and prints the sequence of items in the queue.

分析

Ben的代码本身没有问题,问题在于Lisp的标准输出函数和其所想要的输出方式不同而已。题目要求的就是定义一个过程print-queue来输出Ben所想的输出结果。

代码queue));Value: print-queue测试qqqqqqqqq2);Value: ()

为使本文得到斧正和提问,,转载请注明出处:

邮箱及Skype:nomasp@outlook.com Facebook:https://www.facebook.com/yuwang.ke CSDN博客: 新浪微博:

可就是这样,还是有人,期望过多的温暖。

【SICP练习】108 练习3.21

相关文章:

你感兴趣的文章:

标签云: