摘要:
练习2-81这里再次需要用到第186页的创建表格部分内容。当然了现在完全可以只是将make-table加载到这道题中。还有我们前面几题中用到的apply-generic。a) 载入 Louis 的强制过程后,对两个复数调用exp会出现解释器假死的情况。b) Louis并没有纠正该... 阅读全文
摘要:
练习2-79首先需要加载第125页的apply-generic函数,然后添加题中要求的通用型操作equ?。(define (equ? x y)(apply-generic ‘equ? x y))题目要求我们能够处理常规的数、有理数和复数。分别列出如下。常规数:(define (ins... 阅读全文
摘要:
练习2.77我们首先来看看题目中描述的问题,当Louis Reasoner试着求值(magnitude z)时,程序中不断的寻找。一开始是通过apply-generic、而后是map,最后是get。这三个函数在书中都有很好的解释,我自知才疏学浅就不介绍了。最后一步的get中,最后由于... 阅读全文
摘要:
练习2.76这是一道论述题了吧。首先是带有显示反派的通用型操作,这种策略要求使用者留意命名方面的冲突。如书上所说,这种策略具有不可加性,因为每当增加新类型的时候,所有通用型操作都要求做相应的修改以适配新的类型。至于增加新的操作,同样因为这一点而不适用。然后是数据导向的风格,如书上的大... 阅读全文
摘要:
练习2.75通过模仿书上的make-from-real-imag函数来完成此题。(define (make-from-mag-ang x y) (define (dispatch op) (cond ((eq? op ‘real-part) ... 阅读全文
摘要:
练习2.73a小题,这是由于Scheme对数字、变量的直接规定,前者会被当作数值类型,后者则会被当作符号类型。因此没必要将这两个谓词添加到数据导向分派中了。如果给数值类型或者符号类型加上一个标志,在get的过程中,又对已知的类型做判断,岂不是在浪费空间和时间。 b小题,我们根据书中已... 阅读全文